Просмотр полной версии : Экранирование кавычек? хм,не работает...
BiG_][aKeR
15.01.2010, 20:21
1. Сколько не экранировал всё было норм,а сейчас столкнулся с проблемой
<a onClick="alert(\"abc\")">123</a>
не работает!
Не предлагать мне решение одной скобкой т.е. ' !
Вопрос задан именно в использовании двойной в двойных кавычках!
2.Плюс ко всему еще один глюк нашел в экранировании
<a onClick="document.getElementById('centent1').innerHTML='<b onclick=\'alert(\\\'popko\\\')\'>Кликни,но уже не работает...</b>'">Кликни</a>
<div id='centent1'></div>
По сути по клику по второму тексту должен вывести алерт,все скобки так как и нада стоят,но его НЕТУ...консоль ошибок молчит...
Как вариант напиши вот так:
<a onClick="alert("abc")">123</a>
;)
Deathdreams
16.01.2010, 00:15
Большой_][акер
<a href="#" onClick='document.getElementById("centent1").innerHTML="<b onclick=\"alert(/привет/);\">Кликни,но уже не работает...</b>"'>Кликни</a>
<div id='centent1'></div>
Решение кривовато (посторонние символы), но работает.
А вообще зачем тут такой мазахизм?
Не проще создать JS функцию, которая всё это будет выполнять?
Например:
<script>
function doooo(){
document.getElementById("centent1").innerHTML = "<b onclick=\"alert('привет');\">Кликни,но уже не работает...</b>";
return true;
}
</script>
<a href="#" onclick="doooo();">Кликни</a>
<div id='centent1'></div>
Очень Большой Хакер,
<a onClick="document.getElementById('centent1').innerHTML='<b onclick=alert(\'popko\');>Кликни,но уже не работает...</b></a>'">Кликни</a>
<div id='centent1'></div>
работает алерт
BiG_][aKeR
16.01.2010, 14:18
вопрос стоял не как вывести этот алерт,а как экранирова последуюшие скобки!!!
т.е. можно было бы и по функциям розбросать это всё, onclick=pos();
а в функции всё экранировать свободно можно...
ты сделай так как и в том примере,и этим екранированием,чтоб внутри уже\' \' еще были такие же скобки а в них еще...
imajo.ati
16.01.2010, 14:57
<div onclick="alert("читай RFC, \"хакер\"" );">hello</div>
Deathdreams
16.01.2010, 16:28
Самый Большой Хакер,
Не заморачивайся ты с нагромождением кавычек.
Лично я создаю отдельные функции, особенно когда времени нет разбираться где какую кавычку ставить.
Я не один такой.
imajo.ati
16.01.2010, 16:30
может ему безымянная нужна
вопрос стоял не как вывести этот алерт,а как экранирова последуюшие скобки!!!
Как и везде - бэкслешами \'
Стоило тему создавать из-за того что б спросить как экранировать спец символы? Ну так прочитай азы программирования, найдеш на первых страницах эту информацию.
Как и везде - бэкслешами \' Нет.
А првильный ответ(самый первый) ты стер по незнанию, да еще и камент тупой поставил при удалении.
Фу так делать!
Ну так прочитай азы программирования, найдеш на первых страницах эту информацию. А при чем тут программирование, если проблема в разметке?
Почитай азы ;)
P.S. http://www.gramota.ru/class/coach/tbgramota/45_88 пункт 3.
А при чем тут программирование, если проблема в разметке?
Так в разметке или в экранировании спец символов? Может быть тебе самому стоит загуглить? ))
Как видиш мой вариант работает, и он соответствует поставленой задаче, или ты из тех кто тоже для элементарных задач будет писать гавно-функции, или конструкции типа " ?
ЗЫ По поводу правописания, сам понимаеш, это не существенно, главное суть, учитывая то что :
првильный
Может я не прав, я с JS очень слабо знаком, но с удовольтвием пообщался бы на эту тему, ну есесно не на форуме ;)
b3 Есть мнение, что второй вопрос следует из первого. Так что же делать, если автору требуется обрамлять в кавычки аттрибут onclick? Например если там будет тупо два вызова alert на один обработчик?
astrologer
17.01.2010, 16:03
[aKeR']1. Сколько не экранировал всё было норм,а сейчас столкнулся с проблемой
<a onClick="alert(\"abc\")">123</a>
не работает!
Не предлагать мне решение одной скобкой т.е. ' !
Вопрос задан именно в использовании двойной в двойных кавычках!
2.Плюс ко всему еще один глюк нашел в экранировании1. Сколько не стрелял себе в ногу, всё было норм, а сейчас стреляю неправильно и не работает!
Стрелять холостыми не предлагать, толька баивыми!
2. Плюс нашёл глюк в пистолетах - если их неправильно использовать ничего не палучается и даже ошибок в консоли нету
Напишите сначала просто js. Если вам непременно нужно запихнуть его в атрибут - то сделайте следующие замены (aka htmlspecialchars($code, ENT_QUOTES)):
& => &
< => <
> => >
" => "
' => '
P.S. На самом деле автору пофиг совершенно :)
Так в разметке или в экранировании спец символов? В экранировании символов в разметке.
я с JS очень слабо знаком Эта штука называется HTML. А что значением параметра является JS-код(наш случай), адрес ит.д. - разницы никакой.
или конструкции типа " ? Я так и пишу. Потому что так правильно.
Твой вариант с \" же не работает.
По поводу правописания, сам понимаеш У нас язык форума - русский, а не "олбанске", так что будь добр изучить ссылку.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot