我正在尝试创建自己要创建的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.executeScriptdocument_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/

10-11 23:04