我的脚本如下所示:
<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>
之前?
答案 0 :(得分:0)
如果你想放入头,那么一定要把它放进去
$(document).ready(function(){
});
否则你可以在完成DOM之后把它放在(恰好在</body>
之前)
答案 1 :(得分:0)
如果放在标题中,脚本将在DOM加载之前执行,并且不会将referal代码添加到输入中(因为它还不存在)。
我建议把它放在标签前面。
$(document).ready(function(){}); vs script at the bottom of page提供了有关脚本标记/文件位置的一些优缺点/差异的更多信息。