javascript - 为什么 <script> 在 HTML 中对 window.onload 事件的定位很重要?

标签 javascript html events dom-events

我有一个表单可以动态隐藏文本输入字段,具体取决于加载时选项字段的初始选择。经过反复试验,我意识到 <script>标签必须放在 <form> 下面使此功能正常工作的元素:

<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>

事件window.onload是一个全局事件,在页面的所有资源(包括 DOM、图像、框架等)加载完毕后触发。那么,为什么 <script> 仍然是必要的?标签放置在 <form> 下方元素?

最佳答案

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

改变:

window.onload = init();

收件人:

window.onload = init;

关于javascript - 为什么 &lt;script&gt; 在 HTML 中对 window.onload 事件的定位很重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9272307/

相关文章:

java - 如何使用 Jsoup 登录 ASPX 网站

c# - 如何以编程方式单击节点?

javascript - 如何从名称中获取 javascript 类

javascript - 如何在docker中使用mariadb部署ghost?

javascript - 将 Unicode 转换为表情符号的正确方法是什么?

javascript - 限制每个输入的ajax调用

javascript - 为数据表列定义多个 jQuery 变量

html - 使用 ng-class 应用特定类或默认值

javascript - 首次单击时不执行多个设置超时功能

ASP.net 服务器事件在客户端处理