Почему не вызывается обработчик события «load», связанный с <applet>? - PullRequest
0 голосов
/ 08 мая 2011

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

// 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' не выполняется для элемента ? Если я изменю на imageэлемент (с действительным атрибутом src), обработчик будет выполнен.

Ответы [ 2 ]

2 голосов
/ 08 мая 2011

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

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

1 голос
/ 08 мая 2011

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

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

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

...