使用JS替换整个页面时出错

时间:2018-03-08 02:51:15

标签: javascript php jquery replace

我有一个php变量,内容是html:

enter image description here

当我使用Javascript时:

document.body.innerHTML.replace("<?php echo $content ?>");

替换整个页面,它说错误:

enter image description here

和jQuery是同一个错误:

jQuery('html').html("<?php echo $content ?>");

enter image description here

我能做到这一点,JS和PHP解决方案都可以。

2 个答案:

答案 0 :(得分:0)

转换为HTML特殊字符然后转换回JS?

var str = "<?php echo htmlspecialchars($content); ?>";
str = str.replace('&gt;', '>').replace('&lt;', '<').replace('&quot;', '"');
jQuery('body').html(str);

答案 1 :(得分:0)

关于引号和特殊字符似乎更少,更多关于换行符。  您可以使用json来防止所有这些字符出现。

document.body.innerHTML = <?=json_encode($html)?>;

这适用于我的服务器:

<?php
$html = <<<HTML
<span>Lorem Ipsum is simply dummy text of the printing and typesetting industry. </span>
<a href="http://google.com">Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.</a>
<strong>When an unknown printer took a galley of type and scrambled it to make a type specimen book</strong>
HTML;
?>

<html>
    <body>blah</body>
    <script>
        document.body.innerHTML = <?=json_encode($html)?>;
    </script>
</html>

当然,如果您在脚本中先前声明document.body.innerHTML = <?=$html?>;,则可以使用$html = json_encode($html);