I am currently working on a web application, I have a JS logging mechanism that Handles Javascript error that are not caught by the js code inside the page. I am using windo
This also happens on Safari, AFAIK.
What you could certainly do is create a global try/catch block for all JS code instead of text parsing - which could be tricky if you come into things like:
(function ($){
$(function (){
});
})(jQuery);
Opera 11.60+ supports window.onerror
.
Opera's Dragonfly supports remote debugging. You might be able to hack it (it's all written in JavaScript) and log errors yourself (unfortunately the protocol isn't published yet).
you can replace Error.prototype.toString in Opera!
window.onerror = function (msg) {
// send msg to http://errors.net/log.php, for example
(new Image()).src = 'http://errors.net/log.php?msg=' + encodeURIComponent(msg);
};
if (({}).toString.call(window.opera) === '[object Opera]') {
(function () {
var x = Error.prototype.toString;
Error.prototype.toString = function () {
var msg = '';
try {
msg = x.apply(this, arguments);
if (typeof (window.onerror) === "function") {
window.onerror(msg, typeof (this) === 'object' ? this.stack : '', '');
}
} catch (e) {}
return msg;
};
}());
}
seems, it doesn't work for Opera 11.50... only for early versions ...
there is a mention here that Opera now supports window.onerror:
http://my.opera.com/ODIN/blog/2011/11/07/what-s-new-in-opera-development-snapshots-4-november-2011-edition
but window.onerror does not seem to work in Opera Mini (e.g. user agent "Opera/9.80 (J2ME/MIDP; Opera Mini/7.1.32422/30.3214; U; en) Presto/2.8.119 Version/11.10"). This makes it really hard to debug javascript on mobiles with Opera Mini.