问题
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
回答1:
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?
回答2:
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.
来源:https://stackoverflow.com/questions/3060318/js-proxy-pattern