jQuery插件被另一个jQuery实现覆盖

时间:2016-10-09 16:48:55

标签: javascript jquery google-chrome google-chrome-extension code-injection

我正在使用Chrome扩展程序向Gmail注入一些脚本,例如jQuery和qtip。在我添加Chrome扩展程序LinkedIn Sales Navigator之前,它一直没有任何问题,我已经使用了jQuery。

添加后,我收到此错误:

  

TypeError:$(...)。qtip不是函数(...)

console.log($.qtip)会返回undefined,而在添加此扩展程序之前,它会返回该函数。

我注入这些脚本的流程是:

  • 在清单的"content_scripts"部分,我添加content.js
  • content.js文件中,我为每个脚本使用document.createElement("script")并将其附加到页面<head>

我不知道问题是什么,但我认为它是jQuery的覆盖问题,但我不确定为什么以及如何解决它。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

所以,感谢我发现jQuery.noConflict();的评论,并且能够检查所需函数的可用性并采取相应的行动:

if(!$.qtip)
    jQuery.noConflict();