当特定脚本加载到页面中时,是否可以获得事件(或其他知道方式)?
EG。我有一个页面操作,如果存在jquery并且已经完成加载,它应该执行操作。
答案 0 :(得分:0)
我可以想到两种方法:
(1)查看是否包含了jQuery脚本:contentScript.js
:
if ( document.querySelector('script[src*="jquery"]') ) {
// probably has jquery
}
(2)查看是否定义了jQuery
:contentScript.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元素,以便在脚本加载时获取事件。