这可能是一个愚蠢的问题,但实际上我从来没有这样做过,而且我正在尝试的方法没有用。
我有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/