Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Вложенные кавычки


Автор: slavonX86 10.4.2006, 19:38
document.writeln('onMouseOver="this.style.backgroundColor='#E2EDF5'"');

Не работает из-за скобок. Как вывести
Код

onMouseOver="this.style.backgroundColor='#E2EDF5'"


?


Автор: Burrr 10.4.2006, 19:42
Нужно использовать \
Код

document.writeln("onMouseOver=\"this.style.backgroundColor='#E2EDF5'\" ");

Автор: slavonX86 11.4.2006, 08:13
а если текст большой ? или например текст с переменной
Код

var aURL

onClick="Navigate('aURL')"



Автор: Burrr 11.4.2006, 09:41
Значит меняем все кавычки " на \" вот так:
Код

    re=/"/;
    val=val.replace(re,'\"');

Автор: 12345c 11.4.2006, 14:10
Burrr, не из той оперы. Если кавычки написаны явно, перед каждой нужно поставить "\" явно. Уйти от необходимости править кавычки в большом тексте можно ухищрениями - вставить в комментарий и взять текст комментария как ноду. Вставить в комментарий функции в скрипте, взять тело функции и обрезать лишнее рег.выражением. Объявить текст как образец (нельзя ставить переносы строк и слеши без экранов), перевести в строку, обрезать слеши. Описать в невидимом плавающем слое в textarea, взять value (возможны артефакты типа превращения   в пробелы в FF). Yj никак не брать innerHTML, он делает с кодом, что заблагорассудится разработчикам браузера.

Код
alert(/" ' ' " ' "/.toString().replace(/\//g,""))


Код

tt=function(){/*++hnhgj не для FF/Opera
++jgf
345 rgrt*/}
document.write('<textarea cols=60 rows=20>'+tt.toString().replace(/(.|\s)*\/\*((.|\s)+)\*\/(.|\s)+/g,"$2")+'</textarea><br><br>');


Код
<script> 
onload=function(){alert(document.getElementById('d1').childNodes[0].nodeValue)}
</script> 
<div id=d1><!--fgkdfghkdfg
пример комментария, который может содержать любые кавычки без экранирования - " ' ' " ' "/\/\/
fdgkldfgjl  -- и переносы строк--></div>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)