我在做什么:
我正在存储(MySQL)格式化的文本,其结构如下:
I'm Robert (I'm = I am)<br>You're in France (You're = You are)<br><br><strong></strong><span class="st">?</span> <b>I</b>'m Robert <br>? Am Robert <del> <br></del><br>? <b>You</b>'re Robert <br>? Are Robert <br><br>I'm = I am<br>You're = ___ ___?<br><br><br><br>
我正在尝试从数据库中检索此字符串,然后将其附加到这样的WYSIWYG编辑器中。
function enableEditMode(){
card_content.document.designMode = 'On';
$('iframe[name=card_content]').contents().find('body').append("I'm Robert (I'm = I am)<br>You're in France (You're = You are)<br><br><strong></strong><span class="st">?</span> <b>I</b>'m Robert <br>? Am Robert <del> <br></del><br>? <b>You</b>'re Robert <br>? Are Robert <br><br>I'm = I am<br>You're = ___ ___?<br><br><br><br>");
}
我收到以下错误:
参数列表之后SyntaxError:missing)
我认为这是因为&#34;&#34;报价导致问题。
问题:
如何在不包含像这样的语法错误的情况下将HTML附加到DOM中?
答案 0 :(得分:1)
只需替换
class="st"
通过
class='st'
应该做的伎俩。我没有看到更多的报价冲突。
答案 1 :(得分:1)
我认为你需要逃避单引号或双引号:
function addslashes( str ) {
return (str + '').replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
}
来自:Escaping Strings in JavaScript
或者您在服务器端转义字符串并返回转义字符串。 因此,结果应该是这样的:
"this is a test, isn\'t it great! <span class=\"test\">Test</span>"