假设我有一段javascript代码,它是从包含整个html页面的php字符串传递过来的。我将字符串写入当前文档,然后更改其中一个包含的元素。像这样的:
<script type="text/javascript">
var foo = <?php echo $html_document;?>;
document.open();
document.write(foo);
document.close();
document.getElementById("some_id_within_html_document").innerHTML = "some stuff";
</script>
这给了我想要的输出,一切看起来都很好。。。除非您查看此页的源。如果我想稍后刮掉这个页面并做同样的事情,它将显示javascript而不是浏览器解释的html。使用这种方法,我怎样才能刮除所需的HTML而不是生成它的javascript?我已经通过在php中处理字符串来避免这个问题,但是我仍然很好奇在查看源代码/抓取页面时是否可以这样显示解释过的HTML。
编辑:
我从各方面都得到了很好的回应,我学到了很多关于这里实际发生的事情和我应该远离的实践。贾斯汀·伍德给出了一个最简单的解决方案,对于我最初的问题来说,这是最省力的。
最佳答案
不要将PHP变量传递到javascript中。只需输出变量本身,然后使用javascript编辑您想要编辑的任何内容。。。
<?php
$html = "<html><head><title></title></head><body><p id='p'>Something</p></body></html>";
echo $html;
?>
<script type="text/javascript">
document.getElementById("p").innerHTML = "blah";
</script>
类似的事情应该对你有用。
注意:我只在chrome、FF和safari中测试过这个