Почему не вызывается обработчик события 'load', связанный с ‹апплетом›?

Мне нужен обратный вызов, который выполняется после загрузки элемента ‹applet›:

// Create element
var $applet = $("<applet></applet>");

// Attach handler
$applet.load(function() {
    alert('applet loaded');
});

// Set attributes
$applet.attr({
    style: 'position:absolute;left:-1px',
    name: 'TiddlySaver',
    code: 'TiddlySaver.class',
    archive: 'TiddlySaver.jar',
    width:'1',
    height:'1',
});

Почему обработчик события 'load' не выполняется для элемента ‹applet›? Если я изменяю ‹applet› на элемент ‹img› (с допустимым атрибутом src), обработчик возвращается< /em> выполнено.


person Leftium    schedule 08.05.2011    source источник
comment
Вы пробовали вместо этого использовать <object>? Использование <applet> устарело: developer.mozilla.org/en/HTML/Element/applet   -  person Felix Kling    schedule 08.05.2011


Ответы (2)


Согласно HTML 4.01 (который является основным стандартом для веб-страниц), только два элемента имеют атрибут onload: body и frameset. Некоторые другие элементы также поддерживают его как проприетарное расширение (изображение довольно распространено), но вы не должны ожидать, что какой-либо другой элемент сделает то же самое.

HTML5 требует, чтобы все элементы HTML (кроме body, что является своеобразным) поддерживали событие загрузки, но вы не можете рассчитывать на то, что оно будет широко или полностью реализовано (если вообще когда-либо).

person RobG    schedule 08.05.2011

Из документации jQuery:

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

Это может быть причиной, почему.

person DarthJDG    schedule 08.05.2011