запихнуть код js в тэг html
адинистрирую сайт черер кмс
есть код <script language="JavaScript" type="text/javascript"> var objtext = document.getElementById('textinfo'); var objlink = document.getElementById('link'); function more(flag){ if (flag==1){ objtext .innerHTML =' много текста '; objlink.innerHTML ='<< Скрыть'; document.getElementById('link').onclick=function(){ more(2);} } else { objtext .innerHTML =' мало текста'; objlink.innerHTML ='Читать Далее >>'; document.getElementById('link').onclick=function(){ more(1);} } } </script> но если пишу его так то между тэгами <script> появляется какая то бойда и код не работает <script language="JavaScript" type="text/javascript">// <![CDATA[ тут мой код // ]]></script> зато работает вот так <a onclick="javascript: и тут вписать нужный код" id="link"> что нужно вписать туда чтобы не обращаться к внешнему коду js что бы при первом нажатии открывался текст и менялась надпись на '<< Скрыть' а при повторном нажатии сменить надпись ссылки на 'Читать Далее >>' и убрать часть текста |
Цитата:
// ]]> </script> |
сделал две ссылки
'Читать Далее >>' '<< Скрыть' каждая срывает себя и показывает другую, ну и уже все нужные функции |
а скрипт в <script></script> так и не заработал?
|
между тэгами появляется вот это
// <![CDATA[ тут мой код // ]]> вставляется автоматически (видимо какая то защита) |
CMS что ли?
|
Цитата:
alert('работает!'); и // <![CDATA[ alert('тоже работает!'); // ]]> |
Да, но откуда эти комментарии? Я думал (и думаю) их генерирует CMS. Если это CMS, то значит скрипт просто подключается не по правилам CMS.
|
Цитата:
Видимо, ЦМС древняя, ей никто не рассказал, что уже давно не надо вокруг скрипта такие обертки делать. Раньше они были нужны, чтоб браузеры, которые не понимают скрипты (всякие Нетскейп Навигатор и прочие древности), не показывали его наружности людям. Текст помещенный внутри CDATA не парсится и воспринимается как обычная строка. Это позволяет всунуть внутрь тега что угодно (в том числе любой код) и при этом быть уверенным, что парсер не упадет от невалидного кода. Два слеша ставятся чтобы строку "<![CDATA[" и "]]>" сделать комментарием (при этом эта строка остается валидной с точки зрения парсера), т.к. без слешей это ошибка синтаксиса JavaScript. |
Цитата:
Эти комменты не спасут от отображения древними браузерами. Для этого нужно использовать HTML-комментарии: <script> <!-- doSomething(); // --> </script> Обертка же из CDATA позволяет использовать скрипты в XHTML-документах (которые, как правило, никто не использует), чтобы XML-парсер игнорировал тело скрипта. |
Часовой пояс GMT +3, время: 11:24. |