选项卡内容脚本中未调用 setInterval
setInterval not called in tab content-script
简单用例:
main.js
var tabs = require('sdk/tabs');
tabs.open({
url: 'http://www.openstreetmap.org',
onOpen: function (tab) {
tab.attach({
contentScriptFile: './content.js'
});
}
});
content.js
console.log("foo");
setInterval(function() {
console.log("bar");
}, 1000);
输出
foo
我在事件处理程序方面遇到了同样的问题,但问题更大……
使用这个
var { setInterval, clearInterval } = require("sdk/timers");
console.log("foo");
var id = setInterval(function() {
console.log("bar");
}, 1000);
------------ 更新 1 ---------
这对我来说很好:
main.js
var tabs = require('sdk/tabs');
var self = require("sdk/self");
tabs.on("ready", function(tab) {
console.log('opened', self.data.url('content.js'));
tab.attach({
contentScriptFile: self.data.url('content.js'),
contentScriptWhen: 'ready'
});
})
tabs.open({
url: 'http://google.com'
});
data/content.js
console.log("foo");
var go = function () {
console.log('bar');
window.setTimeout(function () {go();}, 100);
}
window.setTimeout(go, 100)
Another question
简单用例:
main.js
var tabs = require('sdk/tabs');
tabs.open({
url: 'http://www.openstreetmap.org',
onOpen: function (tab) {
tab.attach({
contentScriptFile: './content.js'
});
}
});
content.js
console.log("foo");
setInterval(function() {
console.log("bar");
}, 1000);
输出
foo
我在事件处理程序方面遇到了同样的问题,但问题更大……
使用这个
var { setInterval, clearInterval } = require("sdk/timers");
console.log("foo");
var id = setInterval(function() {
console.log("bar");
}, 1000);
------------ 更新 1 ---------
这对我来说很好:
main.js
var tabs = require('sdk/tabs');
var self = require("sdk/self");
tabs.on("ready", function(tab) {
console.log('opened', self.data.url('content.js'));
tab.attach({
contentScriptFile: self.data.url('content.js'),
contentScriptWhen: 'ready'
});
})
tabs.open({
url: 'http://google.com'
});
data/content.js
console.log("foo");
var go = function () {
console.log('bar');
window.setTimeout(function () {go();}, 100);
}
window.setTimeout(go, 100)
Another question