2

このコードを使用して、window.alert関数をオーバーライドします。この関数は、ブレークを\ r\nに置き換えます。Firefoxでは正常に動作しますが、もちろんIEでは動作しません。エラーが発生しました:プロパティまたはメソッドはサポートされていません。

(function() {
  var proxied = window.alert;
  window.alert = function(txt) {
    txt = txt.replace(/<br>/g, "\r\n");
    return proxied.apply(this, arguments);
  };
})();

私が解決策を見つけるのを手伝ってください!ありがとうございました

4

2 に答える 2

2

window.alertがIEの「実際の」関数ではない場合は、これを行います。

(function() {
  var proxied = window.alert;
  window.alert = function(txt) {
    txt = txt.replace(/<br>/g, "\r\n");
    return proxied(txt);
 };
})();

申し訳ありませんが、テストされていません、動作しますか?

于 2010-06-17T09:39:57.927 に答える
0

これはネイティブJavaScript関数には問題ありませんが、などのホストオブジェクトのメソッドでは非常に危険windowです。ホストオブジェクトは、ネイティブJavaScriptオブジェクトの通常のルールの対象ではなく、ブラウザによって大きく異なる場合がありますが、おおむね好きなように動作できます(実際に動作します)。window.alertしたがって、このアイデアや他のホストメソッドを追求しないことを強くお勧めします。

于 2010-06-17T10:26:55.993 に答える