Chrome扩展程序 - 了解内容脚本是否已注入?

时间:2015-10-13 10:07:52

标签: google-chrome google-chrome-extension

有没有办法知道内容脚本是否已成功注入。我知道我们可以使用消息传递。但除此之外还有其他方法吗?

2 个答案:

答案 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。

希望有所帮助