Javascript 试图从数据库附加HTML时未终止的字符串文字
我有一个页面来创建文章。我将由文章WYSIWYG编辑器生成的HTML标记存储到MySQL数据库中 在将html插入数据库之前,我的html将转换为html实体,如下所示:Javascript 试图从数据库附加HTML时未终止的字符串文字,javascript,php,jquery,html,wysiwyg,Javascript,Php,Jquery,Html,Wysiwyg,我有一个页面来创建文章。我将由文章WYSIWYG编辑器生成的HTML标记存储到MySQL数据库中 在将html插入数据库之前,我的html将转换为html实体,如下所示: htmlspecialchars($this->input->post('card_content'), ENT_COMPAT, 'UTF-8', false) <ul><li>Where do you work? </li>&a
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>
数据存储在数据库中的方式如下:
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>
我还需要更新文章内容和标记。为此,我有一个“编辑文章”页面,其中我必须将文章标记显示回所见即所得编辑器中,该编辑器是一个Iframe,具有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)); ?>");
}
function enableEditMode(){
card_content.document.designMode='On';
$('iframe[name=card_content]')。contents().find('body')。append(“”);
}
问题
我得到这个错误:
SyntaxError:未终止的字符串文字
这是因为附加的HTML在许多行上
问题:
我有我所有的休息空间,所以我不知道为什么会有空白。。。我如何确保我的HTML只在一行中,没有白色的spcace?另外,是否有更好的方法将HTML附加到Iframe中 如果要将字符串从php输出到javascript,则应使用
json\u encode()
。请注意,您应该删除javascript中的引号,并且json\u encode()
将引用字符串:
$('iframe[name=card_content]').contents().find('body').append(<?php echo json_encode(html_entity_decode($card->card_html)); ?>);
^ no quotes here
$('iframe[name=card_content]').contents().find('body').append();
^这里没有引号
Do您可以使用php函数(比如str\u replace
)删除所有换行符。@JustOnUnderMillions如果您使用json\u encode()
对字符串进行编码,您将得到一个用双引号括起来的字符串。@JustOnUnderMillions我错过了html\u entity\u decode()
但对于其余部分,我认为这是OP需要的;php字符串正确地传递到javascript。好的,我使用了json\u encode
,但我认为这不是最好的解决方案。我会隐藏内容并显示是否需要,而不使用append()
。但是,让他用你的解决方案来完成;-)这篇经过编辑的文章很有魅力!非常感谢Jeroen,在我的研究中从未见过关于json_编码HTML的提示。非常方便的提示!