Как присвоить HTML-строку переменной в JavaScript с легким экранированием от специальных символов - PullRequest
2 голосов
/ 14 апреля 2011

Я хочу присвоить строку HTML переменной JavaScript, но она выдает ошибку из-за специальных символов. Есть ли простой способ избежать этого персонажа?

Что я хочу сделать в моем файле js:

var messageTemplate = {
   defaultMessageTemplate : "<p>aaaa <b>_username_</b>,</p>
            <p>1sdfasşlğllğlğ.</p>
            <p><b>1 sdfsfsfü şesdfce 12 sfsf.</b></p>
            <p>Üsdfdsfsfsf üyelesfdsdfsdfmsdfdsfdava.</p>
            <p style="font-weight:bold; font-size: 16px;"><a href="/dsfsfs">sfsdfsf Yarasfsdfklayın</a></p>
        <p>Önsdfdsfpıİsdfdfsfn kaçırmayın.</p>
        <br/> <br/>fafaf, <br/>_domain_ Ekssibi</textarea></label></td>"
.... code continues here
};

Ответы [ 3 ]

2 голосов
/ 14 апреля 2011

Функция escape или более новая encodeURIComponent.

2 голосов
/ 14 апреля 2011

используйте функцию escape: http://www.devguru.com/technologies/ecmascript/quickref/escape.html

, но имейте в виду, что это ускользает от всего.Это зависит от того, что вы хотите сделать с этим HTML в переменной.

1 голос
/ 14 апреля 2011

Вам нужно экранировать " внутри строки, заключенной в ", используя \":

var messageTemplate = {
   defaultMessageTemplate : "<p>aaaa <b>_username_</b>,</p>
            <p>1sdfasşlğllğlğ.</p>
            <p><b>1 sdfsfsfü şesdfce 12 sfsf.</b></p>
            <p>Üsdfdsfsfsf üyelesfdsdfsdfmsdfdsfdava.</p>
            <p style=\"font-weight:bold; font-size: 16px;\"><a href=\"/dsfsfs\">sfsdfsf Yarasfsdfklayın</a></p>
        <p>Önsdfdsfpıİsdfdfsfn kaçırmayın.</p>
        <br/> <br/>fafaf, <br/>_domain_ Ekssibi</textarea></label></td>"
};

Или использовать одинарные кавычки, где вы можете использовать ", не экранируя их (но выпотребуется экранировать '):

var messageTemplate = {
   defaultMessageTemplate : '…'
};

И если этот код JavaScript встроен в HTML, вам также необходимо как-то экранировать </ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...