我有一个chrome扩展来填充某些网站上的表单。这一切都工作得很好,但是偶尔填充表单的内容脚本不会被注入,然后我必须重新安装扩展来解决这个问题。这是我用来注入内容脚本的代码:
chrome.tabs.create({ url: url, active: true }, function (tab) { //create tab
chrome.tabs.onUpdated.addListener(function listener(tabId, info) {
if (info.status === 'complete' && tabId === tab.id) {
chrome.tabs.onUpdated.removeListener(listener);
chrome.tabs.executeScript(tab.id, { file: 'library.js', allFrames: true, runAt: "document_end" }, function () {
chrome.tabs.executeScript(tab.id, { file: 'fillForm.js', allFrames: true, runAt: "document_end" }, function () {
//inject content script
chrome.tabs.sendMessage(tab.id, { formData }); //send message to content script
});
});
}
});
});
我想这是某种时间问题,或者是Chrome API程序接口发生了变化?因为这个问题最近才出现。
1条答案
按热度按时间jv2fixgn1#
你说得对,这是executeScript定时的一个bug,here是我解决它的方法;与其说是一个解决方案,不如说是一个黑客,但它是有效的,将脚本一致地注入到生成的选项卡中: