Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a way to try/catch an entire page dynamically?

I have a page on which mysterious JavaScript errors keep popping up. They appear to be coming from the application we use and do not own the source for. I'm working on a real solution to this issue, but we have a demo tomorrow and I was wondering if there is a way to just suppress JS errors page wide (like wrapping ALL the javascript components in a giant try catch).

like image 230
Maxx Avatar asked Jan 31 '11 02:01

Maxx


1 Answers

You could add a handler to the window.onerror event. In this case, all the errors that occur inside the window will be redirected to the handler of this event. (I did test this in Firefox and it worked, but I was having trouble with it in Chrome - my Chrome installation is pretty messed up, so that could be the problem, but there are Chromium bugs filed that relate to this issue: bug #7771 and bug #8939)

window.onerror = function (msg, url, line) {
    alert("Error on line " + line + " in " + url + ":\n" + msg);
    // return true to prevent browser from displaying error
    return true;
}
like image 117
jhartz Avatar answered Oct 05 '22 03:10

jhartz