Javascript 在内容脚本中重新初始化Int变量(Chrome扩展)
我的内容脚本中有一个全局变量Javascript 在内容脚本中重新初始化Int变量(Chrome扩展),javascript,google-chrome-extension,Javascript,Google Chrome Extension,我的内容脚本中有一个全局变量 var myint = 1; var clicker; 然后我在加载页面时启动计时器(并将计时器id存储在var clicker) 此函数将每30秒调用一次(根据setInterval) 问题是,单击链接时,会再次引发windows.onload事件,然后为clicker变量分配一个新的计时器id setInterval 但是,由于myint是一个全局变量,我在if中设置为0,因此if永远不会返回true,因此我只能单击一次(即使计时器将继续触发) 在调试时,我发
var myint = 1;
var clicker;
然后我在加载页面时启动计时器(并将计时器id存储在var clicker
)
此函数将每30秒调用一次(根据setInterval
)
问题是,单击链接时,会再次引发windows.onload事件,然后为clicker
变量分配一个新的计时器id setInterval
但是,由于myint
是一个全局变量,我在if中设置为0,因此if永远不会返回true,因此我只能单击一次(即使计时器将继续触发)
在调试时,我发现每次调用window.onload
时,myint
都会立即将自身重置为1
如何获取myint以保留其最后状态,即0
编辑#1
这是我的manifest.json
{
"manifest_version": 2,
"name": "META Upgrader",
"version": "1.0.0",
"content_scripts": [{
"run_at": "document_start",
"js": ["content.js"],
"matches": [ "<all_urls>" ]
}],
"permissions": [
"background", "webRequest", "webRequestBlocking", "tabs", "<all_urls>"
],
"background": {
"scripts": ["background.js"],
"persistent": true
},
"web_accessible_resources": ["jsui.js"]
}
{
“清单版本”:2,
“名称”:“元升级程序”,
“版本”:“1.0.0”,
“内容脚本”:[{
“运行时间”:“文档开始时间”,
“js”:[“content.js”],
“匹配项”:[“”]
}],
“权限”:[
“背景”、“webRequest”、“webRequestBlocking”、“选项卡”
],
“背景”:{
“脚本”:[“background.js”],
“持久”:正确
},
“网络可访问资源”:[“jsui.js”]
}
我认为您的内容脚本包含所有框架:true,因此它在页面的所有框架中运行,这是您观察到的多次加载。@wOxxOm我编辑了问题并添加了manifest.json,没有所有框架
我应该将其添加为false吗?我想这是因为内容脚本是在页面的上下文中运行的,所以每次页面加载时,它都会以新的变量开始…但不确定
function click() {
//since myint is initialized with 1, this if should return true just once
if (myint > 0) {
myint = myint - 1; //myint becomes 0 so if should fail from now on...
clearInterval(clicker);
document.getElementById('elementID').click();
alert("clicking now");
}
}
{
"manifest_version": 2,
"name": "META Upgrader",
"version": "1.0.0",
"content_scripts": [{
"run_at": "document_start",
"js": ["content.js"],
"matches": [ "<all_urls>" ]
}],
"permissions": [
"background", "webRequest", "webRequestBlocking", "tabs", "<all_urls>"
],
"background": {
"scripts": ["background.js"],
"persistent": true
},
"web_accessible_resources": ["jsui.js"]
}