6

ここでのjsfiddleの例:http://jsfiddle.net/CfJyd/

この問題は、私が知っているFirefox18でのみ発生します。

次の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 のものとは異なる 2 番目の引数があります。

delete Sting.prototype.contains簡単な回避策は、 MooTools をロードして再定義する前にdo と言うことです。1.3 以降、これは保護されたプロトタイプ メソッドではなくなり、適切に再定義されました。FF 17 に間もなく登場するので、約 6 か月前に FireFox 担当者の 1 人によってレポにバグが発生した可能性があると思います...

これを参照してください: 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を追加することによって壊れていました

解決策は、他のコメントの回避策を使用するか、MooTools1.3または1.4にアップグレードすることです。

于 2013-01-12T19:53:20.157 に答える