在Javascript变量中存储HTML

时间:2011-06-17 17:29:01

标签: javascript

我目前正在编写一个网站,允许用户使用WYSIWYG编辑器将​​数据输入MySQL数据库。数据存储到数据库中没有问题,我可以使用PHP查询它并将其显示在我的网页上。

到目前为止,一切正常,直到我尝试将存储在MySQL数据库中的HTML移动到javascript变量中。我能够使用CDATA []工作,但不是每个浏览器。它适用于Firefox,但不适用于IE或Chrome。我正在寻找一种能够在所有浏览器中运行的解决方案。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

因为你正在使用PHP:

<script>
    var foo = <?php echo json_encode($htmlFromDatabase); ?>
</script>

json_encode方法虽然通常用于编码JSON对象,但对于将其他PHP变量(如字符串)转换为JavaScript等价物也很有用。

答案 1 :(得分:0)

“安全”您的代码,就像这样

str_replace( array("\r", "\r\n", "\n", "\t"), '', str_replace('"','\"',$str));

上述功能会清除换行符和制表符,以便您的代码显示在一行中。如果它分成多行,则无法在JS中将其解析为字符串并抛出错误。此外,我们正在逃避“到”,可能需要更多的字符串替换,这取决于您的内容。

并在javascript中内联,

//<![CDATA[ 
    var myHtml = <?php echo '"'.$stuff.'"'; ?>;
//]]>

请记住'''部分,以便它看起来像这个var myHtml =“test”;