Подскажите пожалуйста, как корректно вставить в страницу или в элемент инфоблока Java Script?
Спасибо.
Администратор
Сообщений: Баллов: 400Регистрация: 16.09.2005
0
08.02.2008 13:06:36
Снимите флажок "визуальный редактор" или в режиме редактирования php просто в код в нужном месте спокойно вставьте свой java-скрипт - и будет Вам счастье!
Спасибо за ответ. Так то оно так, но при повторном открытии или редактировании страницы или элемента у меня почему то скрипт нарушается. Хотелось бы этого как то избежать, ведь не будеш же постоян6но вставлять заново тот или иной скрипт (особенно когда их много).
И еще вопрос, иногда необходимо вставить код в тег <body> например, какой-то страницы, как это реализовывать в битриксе если на странице такого кода нет?
Еще раз спасибо.
Администратор
Сообщений: Баллов: 400Регистрация: 16.09.2005
0
08.02.2008 16:38:56
Ну, как вариант - вызывайте скрипт из файла, например так: <script type="text/javascript" language="JavaScript1.2" src="script.js"></script>.
// Скрывает или раскрывает содержимое. function doMenu(AObjIndex) { var subObj = document.all['chapter' + AObjIndex]; var spanObj = document.all['shSpan' + AObjIndex]; if ( subObj.style.display == 'none' ) { doMenu_Show(subObj, spanObj); } else { doMenu_Hide(subObj, spanObj); } // if..else } // doMenu
// Действия при загрузке данной страницы. function onBodyLoad() { // Сворачиваем все подразделы главы 1. doMenu_Hide(document.all['chapter1'], document.all['shSpan1']); doMenu_Hide(document.all['chapter2'], document.all['shSpan2']); doMenu_Hide(document.all['chapter3'], document.all['shSpan3']); doMenu_Hide(document.all['chapter4'], document.all['shSpan4']); doMenu_Hide(document.all['chapter5'], document.all['shSpan5']); doMenu_Hide(document.all['chapter6'], document.all['shSpan6']); } // onBodyLoad
//--> </SCRIPT>
<BODY ONLOAD="onBodyLoad();">
<UL ID="chapter1">
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</BODY> </HTML> ... При его Копи\Пасте в HTML редактор Битрикса с последующим применением изменений удаляются строки:
// Скрывает или раскрывает содержимое. function doMenu(AObjIndex) { var subObj = document.all['chapter' + AObjIndex]; var spanObj = document.all['shSpan' + AObjIndex]; if ( subObj.style.display == 'none' ) { doMenu_Show(subObj, spanObj); } else { doMenu_Hide(subObj, spanObj); } // if..else } // doMenu
// Действия при загрузке данной страницы. function onBodyLoad() { // Сворачиваем все подразделы главы 1. doMenu_Hide(document.all['chapter1'], document.all['shSpan1']); doMenu_Hide(document.all['chapter2'], document.all['shSpan2']); doMenu_Hide(document.all['chapter3'], document.all['shSpan3']); doMenu_Hide(document.all['chapter4'], document.all['shSpan4']); doMenu_Hide(document.all['chapter5'], document.all['shSpan5']); doMenu_Hide(document.all['chapter6'], document.all['shSpan6']); } // onBodyLoad
//--> </SCRIPT>
<BODY ONLOAD="onBodyLoad();">
В результате список принимает вид показанный на рисунке 2 и скрипт не работает ...
. Вопрос такой, можно ли создать Свойство инфоблока для добавления подобных кодов пользователями? Потому как добавляться это все дело будет НЕ через админ панель, а через форму добавления элемента в публичной части. Заранее благодарю за ответ.
В результате список принимает вид показанный на рисунке 2 и скрипт не работает ...
может проактивная защита режет?
Администратор
Сообщений: Баллов: 1849Регистрация: 05.08.2005
Epic fail - сказать "это так просто" и не суметь сделать
0
12.01.2011 12:41:24
Цитата
Melomankz пишет: У меня немного иная задача, т.к. предполагается, что добавлять эти самые ява скрипты будут пользователи, а именно код прослушки вида -
Рекомендую (настоятельно) отказаться от оной задачи. Вы своими руками открываете сайт для XSS-атак.
Не надо сверлить зубы через задний проход дрелью от Сваровски
Администратор
Сообщений: Баллов: 1849Регистрация: 05.08.2005
Epic fail - сказать "это так просто" и не суметь сделать
0
12.01.2011 12:43:43
Цитата
Юрий Головин пишет: Помогите, пожалуйста...
Оформите свой код как компонент - только тогда все заработает. В таком виде редактор и будет резать. Точнее, срабатывать проактивка.
Не надо сверлить зубы через задний проход дрелью от Сваровски