有没有办法阻止某些javascript函数访问jquery库

Is there a way to prevent certain javascript functions from accessing a jquery library

本文关键字:函数 javascript 访问 jquery 有没有      更新时间:2023-09-26

情况:

  • 在一个网页上,我正在使用语法高亮显示和Lightbox 2
  • 语法高亮显示使用JavaScript。Lightbox 2使用jQuery(版本1.7.2)
  • 当我在独立的(不同的页面)上运行每个脚本时,它就起作用了
  • 只有当我在同一页上运行这两个程序时,才会出现问题
  • 在谷歌浏览器上,网页运行完美
  • 在IE 8上,当调用lightbox2函数的一部分时,我遇到了一个错误
  • 错误指向jquery1.7.2文件,声明此对象不支持的方法/属性
  • 确切的错误代码是:parts=rfxnum.exec(val)
  • 我插入了一个alert()来显示rfxnum和val的值
  • rfxnum=/^([+-]=)?([''d+.-]+)([a-z%]*)$/i
  • val=802
  • 我发现的一件疯狂的事情是,当我独立运行这两个脚本时,警报显示rfxnum和val的值相同,但它运行得很好
  • 语法高亮显示在所有条件下都运行良好

我的猜测:-语法高亮显示似乎干扰了jQuery 1.7.2库中的w/values/functions/parameters。或者语法高亮器和jQuery库都引用的一些全局值。

我的问题:

  • 有没有办法防止Syntax Highlighter或任何其他非jQuery JS脚本不与jQuery库交互/引用
  • 如果答案是,JavaScript一开始不会引用jQuery-libs,那么我的问题是,发生这种情况的可能原因是什么
  • 或者,有没有一种方法可以将jQuerylib和相关的JS函数打包在一起,这样其他函数就不能引用包中的任何函数/变量

如果有任何建议/见解,我将不胜感激。

您可以使用noConflict()

<!-- Putting jQuery into no-conflict mode. -->
<script src="prototype.js"></script>
<script src="jquery.js"></script>
<script>
var $j = jQuery.noConflict();
// $j is now an alias to the jQuery function; creating the new alias is optional.

使用jQuery.noConflict();-Lightbox和jQuery冲突