使用 executeScript 的代码注入从不调用 Chrome 扩展中的回调
Code injection using executeScript never call callback in Chrome extension
我正在尝试创建我正在创建的 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 处注入,因此它可能不会 运行 在某些奇怪的页面上,无论出于何种原因仍处于 "busy" 状态。
解决方案:使用runAt: 'document_start'
强制立即执行:
chrome.tabs.executeScript (null, {
file: 'extfiller.js',
runAt: 'document_start'
}, function(results) {
console.log(results);
});
我正在尝试创建我正在创建的 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 处注入,因此它可能不会 运行 在某些奇怪的页面上,无论出于何种原因仍处于 "busy" 状态。
解决方案:使用runAt: 'document_start'
强制立即执行:
chrome.tabs.executeScript (null, {
file: 'extfiller.js',
runAt: 'document_start'
}, function(results) {
console.log(results);
});