假设我想要在脚本标签内打印HTML。
像这样的源代码:
<div>foo</div>
<script>
print('<div>Print this after the script tag</div>');
</script>
<div>bar</div>
在脚本运行后,浏览器中应该看起来像这样
<div>foo</div>
<script></script>
<div>Print this after the script tag</div>
<div>bar</div>
我可以为此编写自己的代码,但由于这看起来对我来说是一个非常简单的问题,我猜测要么我错过了什么,要么我的思维方式有缺陷,并且打印被有意留下。
另外,与此有关:我想知道脚本是否(或者能否)知道围绕它的脚本标记。有了这个信息,找到要注入打印的html代码的位置将会更容易,假设不会被强烈反对。
澄清一下:我不需要您为我编写打印函数。我只需要知道是否存在原生方法来实现这一点,而我错过了它,或者不能这样做的原因。
编辑 我意识到我没有认真思考问题。
我整理了我的事实,现在几乎所有的事情都似乎正常工作。我最初应该提到需要在模板内部使用打印功能 - 我正在进行模板引擎实验。我成功地通过将脚本与纯html分离并将拆分的html与脚本输出连接起来来解决了这个问题。
当我编写代码时,我注意到由于js的异步性质,一切都不会那么顺利。我想我期望能够在模板中执行任何类型的js魔法,就像我可以在php中一样。看起来,在模板内部以一种绝对可靠的方式支持异步代码需要再思考一下。
document.write
会将内容写入其中。一旦编写完成,document.write
就会创建一个新的文档并写入其中。(如果您仔细想想,document.write
无法写入现有的完整文档是有道理的。PHP的等效操作是在客户端下载整个页面并断开连接后调用echo
。尽管我承认,创建新文档的行为有点奇怪;它可能更合理的做法是不做任何事情。) - ruakh