【发布时间】:2011-10-18 11:11:00
【问题描述】:
我正在创建一些 JavaScript,主要是基于 jQuery 的小部件,它们应该可以在第三方页面上工作。为了简化小部件的嵌入和维护,我们要求用户只嵌入一个<script> 元素 sn-p,它从我们的服务器下载一个 JavaScript 文件,该文件进一步下载小部件运行所需的所有 CSS 和 JavaScript,并将它们放在第三方页面的头部。
我的问题发生在已经有 jQuery 的页面上,它是依赖的 JavaScript 之一。我们的小部件使用var jQuery_1_6 = jQuery.noConflict(true),它是在加载 jQuery 后立即设置的,但是,在检查是否加载 jQuery 的脚本中,我们使用以下 if (typeof jQuery == 'undefined') 和 if (typeof jQuery.ui == 'undefined')。
现在的问题是,如果页面上已经存在 jQuery 和 jQuery.ui,ifs 将不会加载 jQuery 版本,这(我猜)会导致 jQuery_1_6 = jQuery.noConflict(true) 不起作用。
任何想法如何在已加载的 jQuery 上应用noConflict?再次追加已经加载 jQuery 的节点是否有帮助,如果是,如何确定哪个 .js 文件承载 jQuery 代码?
【问题讨论】:
-
嗨 Manuel,尊重您的努力,您建议的线程与我需要的线程之间的区别在于,我们不需要用户在头部添加任何脚本元素,而是加载它是动态的,这导致了我描述的问题。无论如何,谢谢你,最好的