我应该把DOM操作JS脚本放在' <head> '还是在结束' </body> '之前?
Should I put the DOM manipulating JS script in `<head>` or before the closing `</body>`?
我的脚本是这样的:
<script>
var queryString = window.location.search;
var pos = queryString.indexOf("?refer=");
var referEmail = queryString.substring(pos+7);
document.getElementById("referral-code").value = referEmail;
</script>
和HTML代码看起来像这样:
<form action="/" method="POST">
<label for="referral-code">Referrer's code (hidden): </label>
<input type="text" name="referral_code" id="referral-code"/>
<br/>
<label for="me-email">My Email: </label>
<input type="text" name="self_email" id="me-email"/>
<br/>
<input type="submit" value="Step Inside" />
</form>
我认为将<script>
标签放在<head>
中可能更干净。但是,我不确定脚本是否会等待执行,直到<body>
中的DOM被处理。如果不是,document.getElementById("referral-code")
会返回undefined
吗?
有没有人有想法是否在<head>
脚本将等待执行,直到整个HTML加载?我应该把DOM操作脚本放在<head>
或关闭</body>
之前吗?
如果你想在
中添加head那么一定要在 中添加$(document).ready(function(){
});
或者你可以把它放在DOM完成后(就在</body>
之前)
如果放在标题中,脚本将在DOM加载之前执行,并且不会将引用代码添加到输入(因为它还不存在)。
我建议把它放在标签之前。
$(文档)时(函数(){});在页面底部的Vs脚本有一些关于脚本标签/文件位置的一些优点/缺点/差异的更多信息。
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 循环结束/推送到数组之前在页面上呈现EJS
- 在另一个函数成功结束后调用该函数
- 在动画结束之前调用函数
- 不同页面背景的body标记上的角度ng样式
- 希望日期开始结束于while循环中的一个房间id的一个数组
- 使用nunjucks时发生块结束错误
- contentWindow.document.body is null
- HTML5获取弧的坐标's结束
- 内容结束时停止无限滚动
- 使用jQuery插入HTML页面的第一个项目缺少结束标记
- 在jQuery中使用$('body').html('')意味着什么
- 如何在视频上显示海报图像使用Jquery结束
- 使用while循环+break是一种可接受的方式;goto;手术的结束
- 处理第三方库发送的ajax请求的开始和结束事件
- 如果在iframe中查看页面,如何在Wordpress中添加body类
- '这'内部'body'标签
- 结束后Javascript倒计时计时器重定向
- 如何确保IE8中body标记结束前javascript的加载顺序
- 地方& # 39;脚本# 39;在BODY标签结束前使用jQuery