6

在这里工作的 jsfiddle 示例:http: //jsfiddle.net/CfJyd/

这个问题只发生在我知道的 Firefox 18 中。

以下html:

<div class="test">Test Div</div>
<div class="testIgnore">This should stay the same</div>

有了这个js:

window.addEvent('domready',function() {
    $$('.test').set('html','Only Test should update');
});

输出结果:

Only Test should update
Only Test should update

由于许多使用 1.2.5 的插件,目前无法选择升级到 Mootools 1.4.5,任何人都可以为我指出正确的修复方向吗?

4

3 回答 3

8

我在这里找到了答案:https ://groups.google.com/forum/#!msg/mootools-users/W7MHwTFHYQ4/B4HcR951XQYJ

在 javascript 中的任意位置添加以下代码 - 我在 mootools 上方添加了它,它运行良好:

String.prototype.contains = function(string, separator){
    return (separator) ? (separator + this + separator).indexOf(separator + string + separator) > -1 : String(this).indexOf(string) > -1;
};
于 2013-01-11T06:09:44.820 回答
4

已知的错误。如果我没记错的话,这与 Gecko 中提议的ES 和谐的早期引入有关String.prototype.contains,它与 1.2.5 中的第二参数不同

delete Sting.prototype.contains一个快速的解决方法是在加载 MooTools 之前说做,以便它重新定义它。从 1.3 开始,这已不再是受保护的原型方法,并且已正确重新定义。我认为大约 6 个月前,其中一个 FireFox 人员可能在回购中提出了一个错误,因为它即将登陆 FF 17...

看到这个:https ://bugzilla.mozilla.org/show_bug.cgi?id=789036#c23

甚至 Brendan Eich 也对此发表了评论,并暗示它可能会在 18.0.1 中被禁用,因为它被过早地采用了。

于 2013-01-10T22:37:27.297 回答
2

有关此的更多背景信息:MooTools 1.2.x 通过添加 String.prototype.contains 被破坏

解决方案是使用其他评论中的解决方法或升级到 MooTools 1.3 或 1.4

于 2013-01-12T19:53:20.157 回答