NickTroshkov
Зарегистрирован: 10.01.2002 Сообщения: 27 Откуда: Геленджик
|
Добавлено: Вт Янв 22 2002 13:29 Заголовок сообщения: Еще один баг XML/XSLT + script !!!??? |
|
|
Согласно спецификации W3C работа со скриптами в XSLT в режиме output="html" (default 4.0) выглядит примерно так (извините за Имперсант+lt+ТочкаСзапятой): <script>if (a Имп+lt+Тчкзп b) foo()</script> или <script><![CDATA[if (a меньше b) foo()]]></script>
Работаю в блокноте, WIN98, MSIE5.5 c установленным XML v.3.0 и XSLT соответственно. Я перенес нормально работающий код (нажимающаяся кнопка) из HTML в XSLT согласно этой спецификации.
Вот классический код: <head> <script language="JavaScript"><![CDATA[ zm = new object(); zm[1] = "_ov"; zm[2] = "_ot"; zm[3] = "_dn"; z = new object(); z.but_ov = new image(16, 16); z.but_ov.src = 'butov.gif'; z.but_ot = new image(16, 16); z.but_ot.src = 'but.gif'; z.but_dn = new image(16, 16); z.but_dn.src = 'butdn.gif';
function change(id, act){ if(document.images) document.images[id].src = eval("z.but" + zm[act] + ".src"); } ]]></script> </head> и сама кнопка: <a onmouseover="change('but',1)" onmouseout="change('but',2)" onmousedown="change('but',3)" > <img alt="кнопочка" border="0" src="but.gif" align="left" name="but" width="16" height="16" /></a>
Все поставлено в правильные места и форматируется правильно. Но по событию onmouseover (и только) выдается сообщение, что на странице есть ошибка и кнопка не меняется - не работает. Я все перепробовал, менял JavaScript на JScript, менял [[CDATA]] на коментарии, убирал все напрочь. Ошибка исчезает только если убрать функцию и ее вызов!
Значит настоящий HTML и генерируемый через XSLT обрабатываются ПО РАЗНОМУ !!!
ЭТО НОРМАЛЬНО? Я ВИНОВАТ? ИЛИ БАГ=ФИЧА? И еще, как мне посмотреть результат трансформации в виде HTML-кода? |
|