2015-09-05 11 views
0

我的脚本是这样的:我应该把DOM操作JS脚本放在`<head>`还是在关闭`</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>之前?

+0

头部分中的脚本在主体解析之前执行。但是你可以把你的代码放入一个你分配为'onload'处理函数或'DOMReady'处理函数的函数中,*然后*这个函数将在*正文被解析后执行。 (注意,'getElementById()'永远不会返回'undefined':如果没有找到匹配的元素,它将返回'null'。) – nnnnnn

+0

正文结束时,如果你想放在头部see.http:// stackoverflow/29772994 /如何在头部添加脚本脚本/ 29773084#29773084 – Tushar

+0

可能的http://重复stackoverflow.com/questions/29772994/how-to-have-a-script-in-the-head-add-script-at-the-end-of-the-body/29773084 – Tushar

回答

0

,如果你希望把脑袋然后确保你把它放在

$(document).ready(function(){ 

}); 

否则,你可以把它的DOM完成(只是</body>前右)

+1

他没有说他正在使用jQuery的。 –

+0

我知道这只是为了他的信息。 – maddygoround

相关问题