How to detect an error 404 in an iframe?

The status only lives in the response header.

The 404 Page is handling an HTTP Status Code, which is only included in the server’s response sent to the browser, but not in the actual window and document objects of the DOM that javascript may access. This means that while you certainly can collect the status-code and take appropriate actions, you may only do so when your javascript is receiving the response, such as with a jQuery.ajax() request or an XmlHttRequest to load your “iframe”.

Hope the 404 page follows 404 standards.

If the above isn’t an option, the only other possibility may be to check the title, and/or H tags, for ” 404 “. While this is most certainly less than ideal (I’d love to see, “404, Movie not Found, the Movie.”), it is your only other option.

$('#iframe').load(function (e) {
    var iframe = $("#iframe")[0];

    if ( iframe.innerHTML() ) {
        // get and check the Title (and H tags if you want)
        var ifTitle = iframe.contentDocument.title;
        if ( ifTitle.indexOf("404")>=0 ) {
            // we have a winner! probably a 404 page!
        }
    } else {
        // didn't load
    }
});

Leave a Comment