尝试从数据库追加 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
我有一个页面可以创建文章。我正在将文章所见即所得编辑器生成的 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'
.
我正在使用以下代码将解码后的 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