扩展JS代码
Extenal JS code
我最近开始学习JS,有一个问题我想不通。。。我尝试了很多解决方案,但都无济于事。
我有一个非常基本的JS代码:
<body>
<h1>My First JS Page</h1>
<p id="demo">My First Paragraph.</p>
<script>
document.getElementById("demo").innerHTML="My First JavaScript";
</script>
</body>
当脚本在下面时,代码可以工作,但如果我将相同的脚本附加为外部脚本,并将其连接到HEADER中的HTML,则脚本就是不工作。。。。
您应该将外部脚本包装在中
window.onload
示例
HTML
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>My first JS</title>
<script src="test.js"></script>
</head>
<body>
<h1>My First JS Page</h1>
<p id="demo">My First Paragraph.</p>
</body>
</html>
JS文件名test.JS
window.onload = function () {
document.getElementById("demo").innerHTML="My First JavaScript";
//more code can go here if you want
}
HEADER 中的HTML
如果将脚本放在<head>
中,则它将出现在<p id="demo">
之前。
由于脚本立即尝试getElementById('demo')
,因此该元素不存在。所以它得到undefined
而不是元素。
您需要将脚本移动到元素之后(就像问题中的代码中一样),或者将代码封装在函数中并将该函数用作事件处理程序(用于在元素存在之前不会触发的事件,例如加载事件)。
这是关于操作顺序的。浏览器解析后,您所拥有的脚本将立即运行,这意味着如果没有id为"demo"的渲染元素,则不会发生任何事情。只需将<script>
块放置在<p>
元素上方,您就会注意到这种行为(JSFiddle示例)。为了应对这种情况,您需要确保所有脚本都在文档末尾(格式错误),或者使用某种方法在文档完全加载后运行脚本(首选)。两种最常见的方法是使用window.onload
事件:
window.onload = document.getElementById("demo").innerHTML="My First JavaScript";
或者合并一个JS库,比如jQuery,并使用它的内置方法:
$(document).ready(function() {
$("#demo").html("My First JavaScript");
}
这是因为HTML页面的文档或<body>
部分尚未加载。
为了解决这个问题,请向<body>
的onLoad
事件注册一个事件处理程序,如下所示:
<html>
<head>
<script type="text/javascript">
function onDocumentReady() {
document.getElementById("demo").innerHTML="My First JavaScript";
}
window.onload = onDocumentReady;
</script>
</head>
<body>
<h1>My First JS Page</h1>
<p id="demo">My First Paragraph.</p>
</body>
</html>
相关文章:
- Meteor JS中代码的重复使用部分
- 骨干模型默认值-todos.js示例中不必要的代码
- 为什么indexOf在这个js代码中不起作用
- 点击facebook像素跟踪注册(JS/JQUERY代码)
- js代码从jQuery转换为原生代码
- JS代码中的减号
- 将JS函数传递给Emscripten生成的代码
- 谷歌地图Api和JS代码不工作
- HTML 5 和 3.js 代码不会在网页上显示任何内容
- Node.js:异步代码 + js 闭包的问题
- Chrome 开发者工具 - 控制台.log原生代码 JS
- 为jQuery和KNOCKOUT通用化javascript代码.js成为一个可重用的模块
- .ninnerHtml代码(JS/JQuery)无法识别html表中的动态内容
- 生成唯一的6位代码js
- 我得到了“;赋值中的左侧无效“;在我的代码(JS)中
- 更改代码(JS)中JQuery Mobile Calendar日期的状态
- 如何改进代码JS(Jquery)?一个简单的下拉列表
- 从传输中了解代码.js
- 这段代码(JS)的区别是什么?
- JavaScript倒计时计时器代码[JS]