У меня есть <iframe>, который могут включать другие сайты, чтобы их пользователи могли POST вернуть форму на мой сайт. Я хотел бы изящно обрабатывать случаи, когда мой сайт отключен, или мой сервер не может обслуживать содержимое <iframe> (то есть тайм-аут ответа или ошибку 4xx или 5xx). Я попытался добавить объект onError к объекту <iframe>, но это, казалось, ничего не делало:
showIFrame = function() {
var iframe = document.createElement('iframe');
iframe.id = 'myIFrame';
iframe.src = 'http://myserver.com/someURLThatFailsToLoad';
iframe.onError = iframe.onerror = myHandler;
document.body.appendChild(iframe);
};
myHandler = function(error) {
document.getElementById('myIFrame').style.display = 'none';
console.error('Error loading iframe contents: ' + error);
return true;
};
Если мой сервер возвращает 404, я просто получаю содержимое не найденной страницы в <iframe>. Фактически, этот обработчик ошибок никогда не срабатывает. Есть ли способ сделать эту работу?
(Я сейчас тестирую в Chrome, но мне бы хотелось, чтобы он также работал для FF и IE >= 7.)