javascript - 如何从外部js文件渲染html

标签 javascript

这可能是一个愚蠢的问题,但实际上我从来没有这样做过,而且我正在尝试的方法没有用。

我有2个文件

test.html
test.js

我在 test.html 中将 js 作为外部链接

<!doctype html>
<html>
<head>
<script type="text/javascript" src="test.js"></script>

<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>
</body>
</html>

在我的 js 文件中我有这样的东西

document.appendChild('<div>testing</div>')

我也试过

document.getElementsByTagName('body').appendChild('<div>testing</div>')

我做错了什么?我只是想学习如何从外部 js 文件生成 html 以用于我正在处理的 future 项目。

最佳答案

您通常应该尝试运行依赖于页面的脚本之后 文档已被解析,而不是之前 - 如果您将脚本放在 <head> 中并立即运行它,<body>尚未创建。给你的脚本标签 defer属性,以便它仅在文档完全解析后运行:

<script defer type="text/javascript" src="test.js"></script>
  • appendChild接受一个元素作为参数,而不是一个字符串

  • 您需要附加到 body , 而不是 document本身 ( Only one element on document allowed. )

  • 如果您想追加一个 HTML 字符串,分配/连接到 .innerHTML属性(property)

  • 分配给 .innerHTML将破坏对内部元素的现有引用,包括监听器。为了让听众保持活跃,请使用 insertAdjacentHTML相反:

document.body.appendChild(document.createElement('div'))
  .textContent = 'testing1';
  
// Another method:

document.body.innerHTML += '<div>testing2</div>';

// Another method:

document.body.insertAdjacentHTML('beforeend', '<div>testing3</div>');

关于javascript - 如何从外部js文件渲染html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50978754/

相关文章:

javascript - 如何将日期转换为 UTC?

javascript - Material UI 3.9.3 未在 IE 中设置复选框样式

javascript - Jquery 插件在 IE 8 中给出错误

javascript - 检查单行复选框列表

javascript - Nashorn:奇怪的包裹返回

javascript - 使用 JQuery 选择器在 DOM 中先前出现的元素

javascript - 将图像加载到 div 而不刷新浏览器

javascript - 将 ng-model 重新绑定(bind)到服务对象

javascript - 我不明白: for (var node = list; node; node = node.其余的)

Node 服务器中的javascript语法错误