Как проверить, является ли iframe пустым / нулевым / неопределенным? - PullRequest
5 голосов
/ 18 ноября 2010

Это не работает:

if(document.getElementById("iframe").innerHTML==''){

Есть ли безопасный браузер, надежный способ проверить iframe, если он пуст или нет?

Спасибо

Ответы [ 2 ]

6 голосов
/ 18 ноября 2010

Хорошо, если вы можете использовать jQuery, проверьте его length свойство. Это кросс-браузер совместим. Если это ноль, его не существует. Как то так:

if(!$("#iframeid").length) {
    // iframe doesn't exist
}

EDIT:

После просмотра ваших комментариев по вашему вопросу:

Если вы хотите проверить, не загружена ли в iframe страница, а iframe не является кросс-доменом , вы можете проверить наличие тега body внутри iframe. Если он существует, то что-то загружено.

Примерно так:

if($("#iframeid").contents().find("body").length) {
    // some html page loaded in iframe
}

Если iframe является междоменным, вы будете заблокированы политикой того же происхождения . В противном случае это сработает.

3 голосов
/ 18 ноября 2010

Проверьте свойство contentDocument кадра. IE 7 и более ранние версии поддерживают свойство contentWindow, но есть простой кросс-браузерный пример на http://www.w3schools.com/jsref/prop_frame_contentdocument.asp.

Менее надежный метод, но он может быть тем, что вам нужно ... проверьте свойство src.

Вы можете прочитать о других свойствах кадра в http://www.w3schools.com/jsref/dom_obj_frame.asp

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