我在back_page中包含jQuery,就像这样,
<script type="text/javascript" src="libs/jquery.js"></script>
问题在于:
在使用jQuery插件的网站中(使用jQuery.extend方法),在安装我的扩展程序时它们不起作用。
我想这是因为我将jQuery.js放在'他们的'jQuery.js'文件中,并且所有.extend都不起作用。
所以,我只想在不可用的时候添加jQuery.js。所以,我尝试添加这样的jQuery,
<script type="text/javascript">
if (typeof jQuery == 'undefined') {
var script = document.createElement('script');
script.type = "text/javascript";
script.src = "libs/jquery.js";
document.getElementsByTagName('head')[0].appendChild(script);
}
</script>
但没有运气。
有人可以建议我在后台页面添加jQuery.js文件的好方法。
答案 0 :(得分:1)
我非常喜欢你的方法,但我建议你在load
事件监听器中包含你的声明:
if (window.addEventListener) {
window.addEventListener('load', init, false);
} else if (window.attachEvent) { // for IE8 and below
window.attachEvent('onload', init);
}
function init() {
if (typeof jQuery === 'undefined') {
var script = document.createElement('script');
script.type = "text/javascript";
script.src = "libs/jquery.js";
document.getElementsByTagName('head')[0].appendChild(script);
}
}
我认为问题可能是在您询问jQuery
是否为对象时,尚未加载DOM。
,您可以通过content_scripts
下的清单文件加载jQuery:http://code.google.com/chrome/extensions/dev/content_scripts.html
答案 1 :(得分:0)
稍后找到答案,
jQ = jQuery.noConflict
并将$
替换为jQ
,解决了这个问题。
结论: content_scripts
也会干扰网页javascripts。