I have an <iframe>
that other sites can include so their users can POST
a form back to my site. I'd like to handle gracefully the cases where my site is down or my server can't serve the <iframe>
contents (that is, a response timeout or a 4xx or 5xx error). I tried adding an onError
to the <iframe>
object, but that didn't seem to do anything:
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;
};
If my server returns a 404
I just get the contents of the not-found page in my <iframe>
. In fact, that error handler isn't ever triggered. Is there a way to make this work?
(I'm currently testing in Chrome, but I'd like it to also work for FF and IE >= 7.)