繁体   English   中英

为什么使用内部javascript文件而不是内部脚本?

[英]Why does this work as internal script but not when you use an external javascript file

我只是在学习Javascript,并且需要这个问题的答案。 为什么这段JavaScript不能使用内部脚本标记在HTML DOM中工作?

这是我的HTML文档。 具有内部javascript扩展名:

<div id="targetarea">
    <p>Hello World</p>
</div>
<div id="target-area">
    <p id="tagline">Hello World!</p>
</div>
<script>
//Creating a a new element
// store the target area to a variable to keep things neat
var targetArea = document.getElementById("target-area");
// create our <p> element
var p = document.createElement("p");
// create a text node inside the <p>, note that we're 
//  using a variable "p" here
var snippet = document.createTextNode("this was a generated paragraph");
// insert our generated paragraph into the DOM
p.appendChild(snippet);
targetArea.appendChild(p);
</script>

这在内部可以正常工作,但是在使用外部js文件时则不能。 有人可以给我正确的js代码段,以便在外部文件中工作并解释为什么吗?

这取决于您何时运行脚本。

如果您在文件的<head>部分中加载脚本,则页面的DOM尚未加载,因此例如getElementById将失败。

将外部脚本加载为<body>部分中的最后一件事将解决此问题。

如果代码在内部但外部运行良好,则可能是链接JS文件。 检查您指向JS文件的链接,并确保已正确链接。 如果您像这样链接javascript文件

<script src="javascriptFile.js">
</script>

并且代码仍然无法正确运行,则问题可能出在其他地方。 另外,请确保将脚本加载到正文中,并确保文件路径正确。

您会感到惊讶,例如错别字等小错误经常导致此类问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM