jQuery 插件被 jQuery 的另一个实现覆盖
jQuery plugin getting overwritten by another implementation of jQuery
我正在开发一个 Chrome 扩展,它可以将一些脚本注入 Gmail,例如 jQuery 和 qtip. It worked without any problem until I added the Chrome extension LinkedIn Sales Navigator,(我检查过)也在使用 jQuery .
添加后出现如下错误:
TypeError: $(...).qtip is not a function(…)
和 console.log($.qtip)
returns undefined
,而在添加此扩展程序之前它正在返回函数。
我注入这些脚本的流程是:
- 在清单的
"content_scripts"
部分中,我添加了 content.js
。
- 在
content.js
文件中,我为每个脚本使用 document.createElement("script")
并将其附加到页面的 <head>
.
我不知道问题出在哪里,但我认为这是 jQuery 的覆盖问题,但我不确定为什么也不知道如何解决它。
在此先感谢您的帮助!
所以,感谢评论,我发现 jQuery.noConflict();
存在,并且能够检查所需功能的可用性并采取相应行动:
if(!$.qtip)
jQuery.noConflict();
我正在开发一个 Chrome 扩展,它可以将一些脚本注入 Gmail,例如 jQuery 和 qtip. It worked without any problem until I added the Chrome extension LinkedIn Sales Navigator,(我检查过)也在使用 jQuery .
添加后出现如下错误:
TypeError: $(...).qtip is not a function(…)
和 console.log($.qtip)
returns undefined
,而在添加此扩展程序之前它正在返回函数。
我注入这些脚本的流程是:
- 在清单的
"content_scripts"
部分中,我添加了content.js
。 - 在
content.js
文件中,我为每个脚本使用document.createElement("script")
并将其附加到页面的<head>
.
我不知道问题出在哪里,但我认为这是 jQuery 的覆盖问题,但我不确定为什么也不知道如何解决它。
在此先感谢您的帮助!
所以,感谢评论,我发现 jQuery.noConflict();
存在,并且能够检查所需功能的可用性并采取相应行动:
if(!$.qtip)
jQuery.noConflict();