Bram Verstraten
Bram Verstraten

Reputation: 1557

JS Proxy Pattern

I use this code to override the window.alert function. The function replaces breaks by \r\n. It works fine in Firefox, but ofcourse not in IE. Im getting the error: Property or method not supported.

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

Please help me find the solution! Thank you

Upvotes: 2

Views: 771

Answers (2)

Tim Down
Tim Down

Reputation: 324587

This would be fine for native JavaScript functions but is highly dangerous with methods of host objects such as window. Host objects are not subject to the normal rules of native JavaScript objects, and can (and do) behave largely as they please, often differently in different browsers. Therefore I strongly recommend not pursuing this idea for window.alert or any other host methods.

Upvotes: 0

Victor
Victor

Reputation: 9269

I would do this, in case window.alert is not a "real" function in IE:

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

Sorry, untested, Does it work?

Upvotes: 2

Related Questions