[javascript, xslt] баг/фича с window.onload

oleg1331

есть xml+xslt. В браузере грузим xml, тот его трансформирует с помощью указанной xsl таблицы. В результирующем xhtml-коде есть скрипты. Они выполняются, проверял алертами Вот только window.onload срабатывать не хочет. т.е. если мы имеем xml файл:
<?xml version="1.0" encoding="windows-1251"?>
<?xml-stylesheet type="text/xsl" href="registration.xsl"?>
<content>
<b>some information</b>
</content>

xsl преобразование
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<script type="text/javascript">
<![CDATA[
alert("another hi");
window.onload = function
{ alert("hi");
}
]]>
</script>
</head>
<body id="cnt">
<xsl:copy-of select="/content" />
</body>
</html>
</xsl:template>

</xsl:stylesheet>

то при загрузке страницы вылетит another hi. А вот просто hi так и не выскочит Это баг или фича? Тестил на фф и ие. результат одинаковый.

oleg1331

короче я для себя решил, что это не баг - это фича.
как объясняется. Вообще документ при xslt преобразовании загружается весь сразу. Потом преобразоывавается и только потом обрабатываются скрипты (вполне естесственный порядок действий, не так ли) Но так как документ уже загружен полностью => функция window.onload не вызывается. Для того, чтобы все-таки выполнить какие-то действия после преобразования можно вызывать body.onload.

sany79

Знаешь, описанное тобой поведение проявляется, если преобразованием занимается apache+mod_xslt.
А вот если броузер (я проверил на Mozill'е) — тогда выскакивают оба алерта. Не берусь судить, баг это или фича.

sany79

То же самое для Mozilla-FF.
А вот konqueror в сочетании с apache+mod_xslt выдаёт оба алерта, а сам по себе — ни одного.
Вселенский хаос...

sany79

А galeon в обоих случаях выдаёт оба алерта.
Парадокс...

oleg1331

хм. про апач+мод не тестил, новость для меня. преобразованием занимался именно браузер.. Последняя версия фф и шестой ослик. Вообще странно.

sany79

А что такое ослик?

Dasar

Internet Explorer -> IE -> и-а-а -> осел

sany79

Спасибо.
У меня на работе такой стоит. Редкостный отстой. Буду звать его осликом

banderon

А вот konqueror в сочетании с apache+mod_xslt выдаёт оба алерта, а сам по себе — ни одного.
А вот последнее — баг
Оставить комментарий
Имя или ник:
Комментарий: