Подтвердить что ты не робот

Существует ли межблочное стандартное событие on-load для тега HTML-объекта?

Мне известно, что IE поддерживает атрибут onreadystatechange в теге object, но это не похоже на стандартный способ, поэтому все другие браузеры его не поддерживают.

Обновление. Чтобы уточнить, я не ищу событие DOM Load, я ищу событие загрузки самого тега object (например, тег object, вставляющий PDF файл на страницу).

В некотором смысле, я ищу что-то похожее на атрибут img onload event/complete для тега object.

4b9b3361

Ответ 1

Атрибут <object onload> хорошо работает в последних версиях Firefox, Chrome и Opera (я только что протестировал его).

Кроме того, выражение 'onload' in document.createElement('object') оценивается как true в Chrome и Opera; Естественно, Firefox является исключением, поскольку такая проверка поддержки событий там вообще не работает. kangax описывает обнаружение поддержки кросс-браузера в http://perfectionkills.com/detecting-event-support-without-browser-sniffing/

Ответ 2

Итак, вы хотите инициировать событие после загрузки объекта [PDF]?
Если это так, это может помочь вам:

http://www.webdeveloper.com/forum/showthread.php?t=160792

----- EDITED [19/10/2011] -----

Если вы загружаете PDF внутри iframe, он будет работать.

Проверьте это: http://sykari.net/stuff/iframe

script будет оповещать только после, что PDF файл полностью загружен.
(Протестировано с помощью FF7 + Win7).

----- EDITED [20/10/2011] -----

Использование JQuery: http://jsfiddle.net/fcABz

Чтобы убедиться, что он работает, я добавил файл PDF на 36 страниц в iframe, так что вы можете наблюдать за индикатором выполнения (по крайней мере, в FF7 есть один, не уверенный в Chrome), и после того, как он полностью вы увидите предупреждение.

Почему? Поскольку метод .load из JQuery будет ждать загрузки всех подэлементов внутри iframe.

Событие load отправляется элементу, когда он и все подэлементы полностью загружены. Это событие может быть отправлено любому элементу, связанному с URL-адресом: изображениями, сценариями, фреймами, iframes и объектом окна.

Если вы хотите попробовать более одного раза, очистите кеш.
Или измените PDF на более крупный, например http://pubs.usgs.gov/tei/532/report.pdf (90 страниц).

Ответ 3

Я не уверен, что вы можете сделать это, просто используя атрибуты объекта.

Посмотрите на это:

  • Вы можете попробовать что-то, используя onreadystatechange

    Когда данные хорошо загружены, readyState==4 и xmlhttp.status==200

  • Вы можете использовать функцию загрузки jQuery:

    Экспортируйте <object/> на странице с именем object.html.

    На главной странице:

    <div id="theObject"></div> <script> $("#theObject").load("object.html", function(response, status, xhr) { alert('Loaded : '+status);}); </script>

    Сообщение будет отображаться после завершения запроса.