Javascript 为什么<;脚本>;HTML中的window.onload事件是否重要?

Javascript 为什么<;脚本>;HTML中的window.onload事件是否重要?,javascript,html,events,javascript-events,Javascript,Html,Events,Javascript Events,我有一个表单,根据加载时选项字段的初始选择动态隐藏文本输入字段。经过一些尝试和错误后,我意识到必须将标记放置在元素下方,才能使此功能正常工作: <html> .... <body> .... <form> <select name=choice> <option value=0 selected>Default</option> <option value=1>Others</o

我有一个表单,根据加载时选项字段的初始选择动态隐藏文本输入字段。经过一些尝试和错误后,我意识到必须将
标记放置在
元素下方,才能使此功能正常工作:

<html>
....
 <body>
....
  <form>
   <select name=choice>
    <option value=0 selected>Default</option>
    <option value=1>Others</option>
   </select>
   <input type=text name=others></input>
  </form>
....
  <script type='text/javascript'>
   function init()
   {
    var A = document.forms[0].choice;
    var B = document.forms[0].others;
    if(A.options[A.selectedIndex].value == 0) B.style.display = 'none';
   }
   window.onload = init();
  </script>
....
 </body>
</html>

....
....
违约
其他
....
函数init()
{
var A=document.forms[0]。选项;
var B=document.forms[0]。其他;
如果(A.options[A.selectedIndex].value==0)B.style.display='none';
}
window.onload=init();
....

事件
窗口。onload
是一个全局事件,在加载页面的所有资源(包括DOM、图像、帧等)后触发。那么,为什么仍然需要将
标记放在
元素下面?

因为您执行
init函数而不是将指针分配给函数

更改:

window.onload = init();
window.onload = init;
致:


因为您正在执行
init函数
,而不是将指针分配给函数

更改:

window.onload = init();
window.onload = init;
致:


JavaScript和HTML工作正常。但我看到你的密码有点不明白

window.onload = init(); 

该行表示立即使用execute init函数,并将函数结果设置为onload事件。这就是为什么将它放在表单元素下时它会工作的原因。

JavaScript和HTML工作正常。但我看到你的密码有点不明白

window.onload = init(); 

该行表示立即使用execute init函数,并将函数结果设置为onload事件。这就是为什么将其放在form元素下时会起作用的原因。

这是因为您的代码中有一个输入错误:

window.onload = init();
这实际上是立即调用
init
函数(然后将
window.onload
设置为未定义)。尝试:


这是因为您的代码中有一个输入错误:

window.onload = init();
这实际上是立即调用
init
函数(然后将
window.onload
设置为未定义)。尝试: