FF3.0的firebug中捕获“element.dispatchEvent is not a function”js错误

问题描述 投票:0回答:7

我在 FF3.0 中加载索引页时收到以下错误。抱歉,我无法将脚本粘贴到此处,因为它有 2030 行代码。

element.dispatchEvent 不是一个函数

在扩展时它给了我以下内容,

fire()()prototype.js?1(第 3972 行)

_methodized()()prototype.js?1(第 246 行)

fireContentLoadedEvent()prototype.js?1(第 4006 行)

[中断此错误] element.dispatchEvent(event);

element.dispatchEvent(event);
位于prototype.js的第3972行。我在我的索引页面中包含了 prototype.js 以及 10 个其他 js 文件。

有人遇到过这种错误吗?请有人解释一下为什么会出现这个错误。

javascript firebug element dispatchevent
7个回答
122
投票

你是否在同一页面上使用jquery和prototype?

如果是这样,请使用jquery noConflict模式,否则你将覆盖原型$函数。

无冲突模式可通过执行以下操作来激活:

<script src="jquery.js"></script>
<script>jQuery.noConflict();</script>

注意:通过这样做,美元符号变量不再代表 jQuery 对象。为了避免重写所有 jQuery 代码,您可以使用这个小技巧为 jQuery 创建美元符号范围:

jQuery(function ($) {
    // The dollar sign will equal jQuery in this scope
});

// Out here, the dollar sign still equals Prototype

11
投票

添加完所有 Jquery 脚本标签后

<script>jQuery.noConflict();</script>

避免Prototype和Jquery之间的冲突。


5
投票

更改以下行

$(document).ready(function() {

jQuery.noConflict();
jQuery(document).ready(function($) {

1
投票

你必须添加

<script>jQuery.noConflict();</script>

之后

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

0
投票

这听起来很愚蠢,但是由于意外或分散,您在代码中的原型下方再次添加了 jquery.js!例如...Ctrl+V...

<script ... src="jquery.js"></script>
<script ... > jQuery.noConflict(); </script>
<script ... src="...prototype.js"></script>    /* Fine up to here */
...
<!-- ( code ....) -->
...
...
<script ... src="jquery.js"></script>//<-- Devil: already added

0
投票

我知道已经有一段时间了,但这可能对某人有帮助,对我来说问题是我导入了 jquery 两次


-1
投票

通过在 noconflict.js 之后调用 jquery 库来检查这一点,或者在 noconflict.js 之后调用多次 jquery 库

© www.soinside.com 2019 - 2024. All rights reserved.