Chrome扩展程序 - 脚本加载事件?

时间:2014-08-24 11:58:00

标签: javascript javascript-events google-chrome-extension

当特定脚本加载到页面中时,是否可以获得事件(或其他知道方式)?

EG。我有一个页面操作,如果存在jquery并且已经完成加载,它应该执行操作。

3 个答案:

答案 0 :(得分:0)

我可以想到两种方法:

(1)查看是否包含了jQuery脚本:contentScript.js

if ( document.querySelector('script[src*="jquery"]') ) {
    // probably has jquery
}

(2)查看是否定义了jQuerycontentScript.js

window.addEventListener('jQueryFound',function() {
    // probably has jquery
});
var scriptTag = document.createElement('script');
scriptTag.textContent
   = "if ( window.jQuery ) { window.dispatchEvent(new Event('jQueryFound')); }"
document.head.appendChild(scriptTag);
如果网站作者使用错误的文件名,

(1)将失败。 (2)如果他们重新定义window.jQuery(或者我搞砸了我的javascript事件api,因为我不是最好的javascript)会失败。

在检测是否包含jQuery之前,您还可以通过将jQuery包含为内容脚本来简化上述操作。 ;)

答案 1 :(得分:0)

我最后听了" DOMContentLoaded"然后执行必要的操作。

感谢所有输入

答案 2 :(得分:-1)

此处似乎存在类似的堆栈溢出问题,我认为这也适用于您的扩展程序:Trying to fire the onload event on script tag

似乎您可以设置脚本的src和onload元素,以便在脚本加载时获取事件。