我目前正在编写一个网站,允许用户使用WYSIWYG编辑器将数据输入MySQL数据库。数据存储到数据库中没有问题,我可以使用PHP查询它并将其显示在我的网页上。
到目前为止,一切正常,直到我尝试将存储在MySQL数据库中的HTML移动到javascript变量中。我能够使用CDATA []工作,但不是每个浏览器。它适用于Firefox,但不适用于IE或Chrome。我正在寻找一种能够在所有浏览器中运行的解决方案。任何帮助将不胜感激。
答案 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”;