我正在尝试创建自己要创建的Chrome扩展程序(打算在第三方网站上自动填写表格-我知道您的想法,不是垃圾邮件,不是)。因此,当我尝试使用executeScript将JS注入此页面时,它永远不会调用回调函数。这是代码:
function doStepPopup () {
console.log ("Step "+step+" begins");
debugger;
var tab = curTab;
chrome.tabs.executeScript (null, {
file: "extfiller.js"
}, function () {
debugger;
console.log ("Script injected for step "+step);
.........
}
doStepPopup ();
第二个
debugger
函数和console.log
以及所有后续代码从不执行。有什么想法吗?提前致谢!对不起,我的英语... 最佳答案
默认情况下,chrome.tabs.executeScript
在document_idle处注入,因此它可能不会在某些奇怪的页面上运行,这些页面由于某种原因仍处于“繁忙”状态。
解决方案:使用runAt: 'document_start'
强制立即执行:
chrome.tabs.executeScript (null, {
file: 'extfiller.js',
runAt: 'document_start'
}, function(results) {
console.log(results);
});
关于javascript - 使用executeScript进行代码注入(inject)时,永远不会在Chrome扩展程序中调用回调,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42509273/