javascript - 嵌入在其他网站上的 JS - 如何在不搞砸其他 jQuery 安装的情况下使用 jQuery?

标签 javascript jquery conflicting-libraries

我正在研究一些将嵌入其他网站(比如 Google Analytics 或 AdSense)的 JavaScript。有一些硬核 JS 正在完成——AJAX 请求、动画、JSON(P)。

我已经使用 jQuery 编写了原型(prototype),并且真的很想继续使用它,但是如果其他站点也安装了 jQuery,这可能会导致嵌入到其他站点时出现问题——甚至可能是不同的版本。

有解决这个问题的好方法吗?到目前为止,我得到的最佳解决方案是简单地将所有出现的 jQuery 替换为 kQuery,并将 $ 替换为 $kQuery,所以没有命名冲突。有什么建议么?我怎样才能与他们现有的 JavaScript 尽可能兼容?

最佳答案

jQuery 有一个noConflict 模式;这就是你所需要的。 jQuery 在覆盖它们之前将 window.jQuerywindow.$ 的原始值保存为本地副本。

所以,一个解决方案是:

var kQuery = $kQuery = $.noConflict( true );

用原始值替换 window.jQuerywindow.$ 并返回对 jQuery 本身的引用


如果您根本不想更改代码,只需将其包装在:

(function( $ ){
   // Your code with $
})( $.noConflict( true ) );

关于javascript - 嵌入在其他网站上的 JS - 如何在不搞砸其他 jQuery 安装的情况下使用 jQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4014491/

相关文章:

javascript - 具有多个进程的 PM2 配置

JavaScript 搜索栏在用户输入后显示结果

jquery - 在 rails 中打开一个 jquery 弹出表单来显示评论和创建评论

javascript - 与 jdmenu、positionBy 和 jquery 冲突

javascript - 检查文本是否以字符开头,后跟数字

javascript - 使用 JavaScript 的简单计算

javascript - 具有 JSON 值的 ionic 搜索弹出窗口

jquery - 使滚动条在每个操作系统中看起来都一样?

installation - 如何强制 conda 跳过检查冲突?

java - 添加用 Java 编译的依赖库总是安全的吗?