假设我想从脚本标签内打印html。

像这样的来源

<div>foo</div>
<script>
print('<div>Print this after the script tag</div>');
</script>
<div>bar</div>

脚本运行后,在浏览器中应该看起来像这样
<div>foo</div>
<script>
print('<div>Print this after the script tag</div>');
</script>
<div>Print this after the script tag</div>
<div>bar</div>

我可以为此目的编写自己的代码,但是由于这对我来说似乎是一个非常简单的问题,所以我猜测是我遗漏了某些东西,或者我的思维在某种程度上有缺陷,并且故意不进行打印。

另外,有些相关:我想知道脚本是否(或可以使)脚本周围的脚本标签。有了这些信息,假定不强烈建议不要查找要注入(inject)的已打印html代码的位置。

需要说明的是:我不需要您为我编写打印功能。我只需要知道实现此目标的 native 方法是否存在,而我已经错过了它,或者不应该这样做的原因。

编辑
我意识到我没有想到这个问题。

我直言不讳,现在几乎所有事情似乎都在起作用。我本来应该提到模板中需要打印功能-我正在进行模板引擎实验。我设法通过将脚本与纯html分开,并将拆分的html sans脚本与脚本输出连接起来来解决这个问题。

在编写代码时,我注意到由于js的异步特性,一切都不会那么顺利。我想我期望能够在模板中执行任何形式的js魔术,就像在php中一样。似乎实际上需要以愚蠢的方式在模板内部支持异步代码将需要更多的考虑。

最佳答案

您需要使用document.write()

<div>foo</div>
<script>
document.write('<div>Print this after the script tag</div>');
</script>
<div>bar</div>

请注意,这仅在您正在编写文档的过程中有效。呈现文档后,调用document.write()将清除文档并开始编写新文档。如果这是您的用例,请引用对此问题提供的其他答案。

关于javascript - 在javascript中是否有等效的php echo/print,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13633085/

10-09 18:17
查看更多