Как отлавливать ошибки JavaScript во всех фреймах (с помощью window.error)? - PullRequest
6 голосов
/ 30 августа 2009

Я знаю, что можно добавить прослушиватель событий для window.error.

Однако при работе с Iframes каждый iframe имеет свой собственный элемент окна, и window.error должно быть создано для каждого iframe.

Можно ли как-то определить обработчик события ошибки в одном месте, где все ошибки будут вызвать этот конкретный метод?

Ответы [ 2 ]

6 голосов
/ 30 августа 2009

Это может сработать.

function myHandler(msg, url, line){
  //do stuff here...
}

//hook in all frames...
function addErrorHandler(win, handler){
  win.onerror = handler;
  for(var i=0;i<win.frames.length;i++){
    addErrorHandler(win.frames[i], handler);
  }
}
//start with this window... and add handler recursively
addErrorHandler(window, myHandler);
2 голосов
/ 30 августа 2009

Я не пробовал это, поэтому, пожалуйста, не вешайте меня за это :-) В главном / родительском окне, которое содержит все iframes, вы можете создать там свою функцию обработки ошибок. Затем используйте jQuery, чтобы захватить все свои iFrames на своей странице и зарегистрировать обработчик .error, чтобы указать на вашу функцию, зарегистрированную в родительском окне.

PS: Кроме того, хотя речь шла об обработке ошибок JavaScript, это тоже довольно круто: https://damnit.jupiterit.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...