Показать сообщение отдельно
  #1 (permalink)  
Старый 24.11.2012, 05:43
Аспирант
Отправить личное сообщение для zebra741258963 Посмотреть профиль Найти все сообщения от zebra741258963
 
Регистрация: 13.12.2011
Сообщений: 67

Передача параметра с кавычкой внутри.
Добрый день.
Есть короткий код:
Код:
<a style=cursor:pointer onClick="x('SAMS UNG')">НажмиТУТ</a>
<input id=PoleText>

<script>
function x(Stroka){document.getElementById('PoleText').value=Stroka}
</script>
Всё просто:
Есть строчка НажмиТУТ и текстовое поле. При нажатии на строку выполняется событие onClick, которое вызывает функцию x, которая помещает в текстовое поле передаваемый параметр.
Вроде всё работает.

Может я не прав, но мне кажется я правильно расставил необходимые кавычки:
- одинарные обязаны окоймлять строковую переменную
- и саму функцию вставил в двойные кавычки, так как иначе встретив первый пробел он являлся бы концом действия по onClick

В этой ситуации недопустимо чтобы в строке была бы одинарная или двойная кавычка (так как любая из них испортит код), и я понимаю что если она появится то я её должен экранировать.

Но непонятый для меня момент появился если я среди прочего должен передавать последовательность символов &##039; (естественно с одним символом #, просто если я тут его поставлю одинарным, то сайт отобразит само значение), например вместо 'SAMS UNG' надо в функции передать строку 'SAMS&##039;UNG'.

Да, ASCI символ номер 39 - это одинарная кавычка. Но я же не передаю кавычку, я передаю строку содержащую код который HTML может отобразить в виде кавычки (и то не всегда). В реальной жизни он даже отображаться не будет. Но почему если я попытаюсь передать 'SAMS&##039;UNG' - JavaScript пытается перевести мою строку в код и перестаёт работать как будто я пытаюсь передать 'SAMS'UNG' ???
Ответить с цитированием