我正在制作我的第一个 chrome 扩展,并注意到从我的 popup.html 页面发送的消息在我的 content.js 消息事件侦听器中被复制。我在每条消息发送之前控制台记录了“发送消息”,在每条消息之前记录了“消息接收”,我不明白这些消息是如何被复制的。我还检查了sendMessage和onMessage的 chrome 开发文档,它指定 onMessage 侦听器应该只在每个 sendMessage 事件触发一次。
任何帮助,将不胜感激。
弹出窗口.html
<!DOCTYPE html>
<html>
<head>
<title>Messaging Practice</title>
</head>
<body>
<h1>Messaging Practice</h1>
<input type="button" id="send-message" value="Button">
<script src="popup.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
内容.js
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.log('message received')
console.log(request);
}
);
Run Code Online (Sandbox Code Playgroud)
弹出窗口.js
var messageButton = document.querySelector("#send-message");
messageButton.onclick = function() {
chrome.tabs.query({currentWindow: true, active: true},
function(tabs) {
chrome.tabs.executeScript(
tabs[0].id, {file: "content.js"}
)
console.log("sending message")
chrome.tabs.sendMessage(tabs[0].id, "string message")
});
}
Run Code Online (Sandbox Code Playgroud)
背景.js
chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
chrome.declarativeContent.onPageChanged.addRules([{ …Run Code Online (Sandbox Code Playgroud) javascript google-chrome sendmessage google-chrome-extension
我正在尝试在输入焦点上实现浮动标签,因为这个带有样式组件:https: //jsfiddle.net/273ntk5s/3650/
但是我的表单是动态加载的,所以首先加载标签然后加载输入.之后加载输入类型文本时,输入焦点更改不起作用.有没有办法实现这个目标?我也使用过jQuery,但仍然没有运气.CSS:
var oldSize;
$('#FirstName').focus(function() {
oldSize = $("label[for='FirstName']").css('font-size');
$("label[for='FirstName']").css('font-size', 12);
});
$('#FirstName').blur(function() {
$("label[for='FirstName']").css('font-size', oldSize);
});Run Code Online (Sandbox Code Playgroud)
.inputText {
font-size: 14px;
width: 200px;
height: 35px;
}
.floating-label {
position: absolute;
pointer-events: none;
font-size: 14px;
transition: 0.2s ease all;
}
input[id='FirstName']:focus + .floating-label
{
font-size: 11px;
}Run Code Online (Sandbox Code Playgroud)
<div>
<label for="FirstName" class="mktoLabel mktoHasWidth floating-label" style="width: 100px;">First name:</label>
<input id="FirstName" name="FirstName" maxlength="255" type="text" class="mktoField mktoTextField mktoHasWidth mktoRequired mktoInvalid inputText" style="width: 150px;">
</div>Run Code Online (Sandbox Code Playgroud)
import seaborn as sns
iris = sns.load_dataset("iris")
grid = sns.JointGrid(iris.petal_length, iris.petal_width, space=0, size=6, ratio=50)
grid.plot_joint(plt.scatter, color="g")
Run Code Online (Sandbox Code Playgroud)
上面的代码将根据 Iris 数据集创建散点图。我想在 [3,.05] 添加另一个数据点,其颜色为红色;或者将数据集中的最后一个点设为红色。我该怎么做呢?
在Javascript中,我可以做
> var foo;
< undefined
> foo;
< undefined
Run Code Online (Sandbox Code Playgroud)
这表明在 Javascript 中,声明的未初始化变量始终是undefined。但他们是吗?或者它们可以像 C 中那样采用随机垃圾值吗?
MDN 的 var 文档没有帮助。
dataset = dataset.batch(50)
dataset = dataset.prefetch(buffer_size=1)
Run Code Online (Sandbox Code Playgroud)
是预取1个批次还是1个元素?
根据tensorflow中的API文档,buffer_size是预取元素的最大数量。但似乎是在批处理数据集后进行了批处理。
为什么承诺首先打印所有成功然后是拒绝后,即使我为其编写代码随机出现
var errors = 0;
var successes = 0;
var p1;
for (var i = 0; i < 10; i++) {
p1 = new Promise(function(resolve, reject) {
var num = Math.random();
if (num < .5) {
resolve(num);
} else {
reject(num)
}
});
p1.then(function success(res) {
successes++;
console.log("*Success:* " + res)
}).catch(function error(error) {
errors++
console.log("*Error:* " + error)
});
}Run Code Online (Sandbox Code Playgroud)
OUTPUT
VM331:16 *Success:* 0.28122982053146894
VM331:16 *Success:* 0.30950619874924445
VM331:16 *Success:* 0.4631742111936423
VM331:16 *Success:* 0.059198322061176256
VM331:16 *Success:* 0.17961879374514966
VM331:16 *Success:* 0.24027158041021068 …Run Code Online (Sandbox Code Playgroud) 我试图弄清楚当使用 useState 钩子更新 React 中的状态时重新渲染何时发生。在下面的代码中,单击按钮会触发包含 setTimeout 的handleClick 函数。setTimeout 内部的回调会在 1 秒后执行,通过调用 setCount 来更新状态变量 count。然后控制台日志会打印一条消息。
单击按钮后我期望控制台日志显示的顺序是:
然而,运行此代码后我看到的顺序是:
“'Count in render', 1”怎么会出现在“'Count post update in setTimeout', 0”之前?setCount 不会导致重新渲染的安排不是立即进行吗?控制台在 setCount 函数调用后立即记录不应该总是在触发重新渲染之前执行吗?
function AppFunctional() {
const [count, setCount] = React.useState(0);
const handleClick = () => {
console.log('Count before update', count);
setTimeout(() => {
setCount(count + 1);
console.log('Count post update in setTimeout', count);
}, 1000);
};
console.log('Count …Run Code Online (Sandbox Code Playgroud)我正在尝试使用 switch 语句来执行任务。我在第一种情况下使用 let 声明了一个变量。但是当我尝试在第二种情况下访问它时,它显示“未捕获的引用错误:t未定义”
x = "20";
switch (x) {
case '10':
let t = 15;
break;
case '20':
console.log(t);
}Run Code Online (Sandbox Code Playgroud)
我收到这个错误
未捕获的引用错误:t 未在 :6:21 定义
但如果我尝试在第二种情况下声明相同的变量
x = "20";
switch (x) {
case '10':
let t = 15;
break;
case '20':
let t = 150;
console.log(t);
}Run Code Online (Sandbox Code Playgroud)
我收到这个错误
未捕获的语法错误:标识符“t”已被声明
为什么会发生这种情况?如何在不使用 var 且不声明具有不同名称的变量的情况下解决此问题。提前致谢。
我想自由浮动一个DOM块,它恰好包含一个<UL>相对于元素的,恰好在一个中<UL>,并且我希望DOM块的布局不是其父级的功能。好像它是该<body>元素的直接子代。
的HTML
<UL><LI>aaa</LI></UL>
<HR>
<UL>
<li>
<span class="r">x-<div class="freefloat">
<UL><LI>aaa</LI></UL>
</div></span>
</li>
<li>hello world</li>
</UL>
Run Code Online (Sandbox Code Playgroud)
的CSS
.r { position: relative; }
.freefloat { position: absolute; top: 0px; left: 1em; }
Run Code Online (Sandbox Code Playgroud)
在示例中,两个带有aaa项目的列表以不同的项目符号结尾。可以抑制/覆盖该特定属性,但是如何将所有内容 “重置” 为顶级范围内的呢?
每当Google Analytics(分析)将数据发送到服务器时,我都希望获得回调。我也想将相同的数据发送到我的服务器。有可能吗?
https://jsfiddle.net/bk1j8u7o/2/
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-143361924-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-143361924-1');
</script>
Run Code Online (Sandbox Code Playgroud) javascript ×7
css ×2
html ×2
es6-promise ×1
input ×1
jquery ×1
matplotlib ×1
python ×1
reactjs ×1
seaborn ×1
sendmessage ×1
use-state ×1