有没有办法知道内容脚本是否已成功注入。我知道我们可以使用消息传递。但除此之外还有其他方法吗?
答案 0 :(得分:2)
我认为最简单的方法是使用executeScript
的可选回调。以'success';
为单位结束您的内容脚本。然后你的注射电话将是:
chrome.tabs.executeScript(tabId, details, successStatus);
function successStatus(frameResults) {
if ( frameResults[0] === 'success' ) {
// successfully injected
}
}
答案 1 :(得分:0)
好的,我们说的是实际页面,而不是后台扩展名。
首先,你必须在页面中包含scrits,这是我如何做到这一点
var j = document.createElement('script');
j.src = chrome.extension.getURL('bower_components/jquery/dist/jquery.min.js');
(document.head || document.documentElement).appendChild(j);
var k = document.createElement('script');
k.src = chrome.extension.getURL('bower_components/jquery-ui/jquery-ui.min.js');
(document.head || document.documentElement).appendChild(k);
然后检查它是否已加载我有一个if条件
if( (/in/.test(document.readyState)) || (undefined === Backbone) ) {
setTimeout('refresh(' + f + ')', 10);
} else {
f();
console.log("Loaded Main Application");
所以我问状态是否准备就绪,然后检查浏览器是否加载了我的js。
希望有所帮助