尝试从数据库追加 HTML 时未终止的字符串文字

Unterminated string literal when trying to append HTML from a database

我有一个页面可以创建文章。我正在将文章所见即所得编辑器生成的 HTML 标记存储到 MySQL 数据库中。

我的 html 在我将它插入数据库之前变成了 HTML 个实体,如下所示:

htmlspecialchars($this->input->post('card_content'), ENT_COMPAT, 'UTF-8', false)

数据在数据库中是这样存储的:

<ul><li>Where do you work? </li><li>What do you do?  </li><li>What position do you have?</li></ul>

我还需要更新文章内容和标记。为此,我有一个 "edit article" 页面,我必须在其中将文章标记显示回 WYSIWYG 编辑器,这是一个具有 designMode = 'on'.

的 Iframe

我正在使用以下代码将解码后的 HTML 追加回 WYSIWYG Iframe:

function enableEditMode(){
    card_content.document.designMode = 'On';
    $('iframe[name=card_content]').contents().find('body').append("<?php echo addslashes(html_entity_decode($card->card_html)); ?>");
}

问题

我收到这个错误:

SyntaxError: unterminated string literal

这是因为附加的HTML在很多行...

问题:

我所有的休息时间 space 都准备好了,所以我不知道为什么会有白色 space...我如何确保我的 HTML 正好在没有空格的单行?推而广之,是否有更好的方法将 HTML 附加到 Iframe 中?

如果你想输出一个从php到javascript的字符串,你应该使用json_encode()。请注意,您应该删除 javascript 中的引号以及 json_encode() 将引用字符串:

$('iframe[name=card_content]').contents().find('body').append(<?php echo json_encode(html_entity_decode($card->card_html)); ?>);
                                                              ^ no quotes here