![](/img/trans.png)
[英]Javascript using innerHTML does not work to add script tag in HEAD
[英]javascript code not work in HEAD tag
我的网页有以下代码:
<html>
<head>
<title>This is test Page</title>
<script language="javascript" type="text/javascript">
document.getElementById("msg1").innerHTML = document.URL.toString();
</script>
</head>
<body>
<div class="sss">
<p id="msg1"></p>
</div>
</body>
</html>
正如您现在执行脚本时 div 不存在但我只想将我的 JavaScript 代码放在<head>
标记中,我不会将它放在 HTML 代码的中间。
但是此代码仅在我将<script>
标记放在<div>
标记之后时才有效。 我使用 VS2010 和 firefox 19.0.1
有没有把代码放在<head>
标签中?
您的脚本依赖于 DOM 准备就绪,因此您只需要在 DOM 准备就绪后执行该函数调用。
<script language="javascript" type="text/javascript">
window.onload = function() {
document.getElementById("msg1").innerHTML = document.URL.toString();
}
</script>
您的脚本使用 DOM 元素,因此必须在加载 DOM 后运行。 你可以使用这个函数来做到这一点:
$(document).ready(function(){
//code here
}
HTML 页面中的各种标签按照它们在页面上的显示顺序加载和处理。 您的<script>
标记在<head>
解析时会立即执行。 这是之前<body>
和内部的元素<body>
被解析。 因此,脚本尝试引用在执行时未定义的元素。
Michael Geary 是对的,为了执行您的代码,我将使用 jQuery 库(JS 开发中的事实上的标准)并利用 DOM 就绪事件。 这将确保一旦 DOM 完全加载,处理程序中的代码就会执行。
<script>
$(function(){
$('#msg1').html(document.URL.toString());
});
</script>
您的脚本使用 dom 元素并且必须在 dom 加载后运行。
将您的代码包装在一个函数中并在 dom 加载后调用它
function myfunc(){
//code here
}
window.onload = myfunc();
我建议像这样使用addEventListener
:
<script language="javascript" type="text/javascript">
document.addEventListener("DOMContentLoaded",() => {
document.getElementById("msg1").innerHTML = document.URL.toString();
});
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.