0

我需要知道是否有办法防止脚本无意中调用 jQuery 中的函数。

基本上,我在每个页面的页眉中调用 jQuery,因为它是整个站点的某些功能所必需的。但是,在我的“联系”页面上,我嵌入了一个使用 JotForm 构建的联系表单。该表单在本地托管,以减少加载时间。

在大多数情况下(在所有现代浏览器中)这不会导致任何问题 - 但在 IE8 中,我在尝试离开页面时遇到堆栈溢出错误。这似乎是由于表单中的某些代码无意中以毫无意义的方式调用了 jQuery 函数。

所以我需要排除包含表单的 div 及其所有内容,使其无法调用 jQuery 函数。

我希望这可以通过我可以在表单之前输入的相对简单的代码行来实现。在这一点上,修改表单脚本超出了我的能力范围。任何建议表示赞赏。

仅供参考 - 这是一个 PHP 网站。不确定这是否有什么不同?

4

3 回答 3

0

加载 jQuery 后立即执行以下操作:

myJQuery = jQuery.noConflict(true);

现在使用myJQuery代替jQueryor $(你当然可以称它为更短的名称)。noConflict 将从全局范围中删除jQuery和删除$(将它们恢复到以前的状态),但会保留它对事件所做的任何摆弄,等等。

你也可以使用这种风格:

(function($){
    // all code here
})(jQuery.noConflict(true))

$为了方便起见,它保持命名。

于 2013-03-09T03:01:45.580 回答
0

戴夫的回答更可取,但如果您不需要 jQuery 的联系页面,您总是可以设置:

jQuery = null; 
$ = null;
于 2013-03-09T03:22:37.390 回答
0

noConflict 解决方案对我不起作用。

我最终通过将表单嵌入到单独的 html 页面上,然后使用 iframe 调用该页面来解决这个问题。

感谢您的建议。

于 2013-05-01T16:47:42.537 回答