javascript - 创建需要 jQuery 的可嵌入 JS,如何不覆盖现有 jQuery

标签 javascript jquery ruby-on-rails backbone.js

我正在创建一个 JS 片段,用户可以将其包含在他们的网站上。此代码片段依赖于 jQuery(和 Backbone)。如果我将它嵌入到一个尚未加载 jQuery 的网站中,它工作得很好,但如果加载了,它通常仍然没问题,除非他们编写了自定义 jQuery 扩展,然后这些扩展被覆盖。

是否可以限制我的 jQuery 范围,使其不会覆盖任何现有的 jqueries?

最佳答案

我最近遇到了一个非常类似的问题。

我们使用 Requirejs 1.0.6,然后我们使用segment.com 将分析集成到我们的 Web 应用程序中。它包含了另一个名为inspectlet.js的js,它用于重新定义jquery。

由于我们原来的应用程序具有 jquery 扩展,因此在我们集成分析代码时,所有扩展都消失了,因为 jquery 被重新定义了。

我们案例中的问题是inspectlet.js在amd/require中重新定义了jquery,升级到requirejs2.0.5后问题得到解决。

我建议使用与inspectlet.js相同的代码来使用/定义jquery。

http://cdn.inspectlet.com/inspectlet.js

var __inspsetjqueryback = false;
if (typeof jQuery != "undefined"){
__inspsetjqueryback = jQuery;
}

var __inspsetdollarback = false;
if (typeof $ != "undefined"){
__inspsetdollarback = $;
}

if(typeof jQuery != "undefined") jQuery.noConflict(true);
//define jquery - execution execution code goes here...
var $i = $i || jQuery.noConflict(true);

if(__inspsetjqueryback !== false){
jQuery = __inspsetjqueryback;
}

if(__inspsetdollarback !== false){
$ = __inspsetdollarback;
}

关于javascript - 创建需要 jQuery 的可嵌入 JS,如何不覆盖现有 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28144615/

相关文章:

javascript - Bootstrap : Remove column margin

javascript - 无法接收当前日期

ruby-on-rails - rails 3.0: ActionController::Base render()

ruby-on-rails - 具有多种生产设置的 Ruby on Rails

Javascript - 全屏图像代码

javascript - 从内联javascript获取e参数

javascript - 如何在 typescript 中使用 `super()`

jQuery .data() 不检索数据-*

javascript - 对象文字滚动中未定义的函数

ruby-on-rails - country_select gem 错误的参数数量错误