即使<script>标记位于<body>标记的底部,也会在Javascript文件之后加载html元素

时间:2018-06-13 17:54:43

标签: javascript html

我遇到了Javascript问题。 HTML元素一直在等待javascript文件,即使脚本标记位于页面底部。如果更改元素不会更新并在5秒后消失这是代码:&#xA;

&#xA;&#xA;

代码:< / p>&#xA;&#xA;

 &lt;!DOCTYPE html&gt;&#xA;&lt; html&gt;&#xA;&lt; head&gt;&#xA; &LT;标题&GT;使用Javascript&LT; /标题&GT;&#XA; &lt; link rel =“stylesheet”type =“text / css”href =“”&gt;&#xA;&lt; / head&gt;&#xA;&lt; body&gt;&#xA; &lt; h1&gt; HTML中的javascript&lt; / h1&gt;&#xA; &LT; p为H. HElllllooooo&LT; / P&GT;&#XA;&#XA;&#XA;&#XA;&#XA; &lt; script type =“text / javascript”&gt;&#xA; var age = prompt(“你的年龄是多少?”);&#xA;&#xA; if(Number(age)&lt; 18){&#xA;警告(“对不起,你太小了,无法驾驶这辆车。关闭电源”);&#xA; } else if(Number(age)&gt; 18){&#xA;警报(“开机。享受骑行!”);&#xA; } else if(Number(age)=== 18){&#xA;警报(“祝贺你开车的第一年。享受&#xA;骑车!”); &#XA; }&#XA; &LT; /脚本&GT;&#XA;&LT; /体&GT;&#XA;&LT; / HTML&GT;&#XA;  
&#XA;

3 个答案:

答案 0 :(得分:1)

prompt是同步的,因此阻止执行直到它返回。这就是为什么第二行(以及其他行)在prompt返回之前不会执行的原因。

至于位于底部的script标记,请执行以下操作:

window.onload = myFunction

答案 1 :(得分:0)

您可能需要将其添加到自己的匿名函数中,该函数可以设置为运行onload;

理论上应该可以正常工作:

(function () {
  var age = prompt("What is your age?");

  if (Number(age) < 18) {
    alert("...");
  } else if (Number(age) > 18) {
    alert("...");
  } else if (Number(age) === 18) {
    alert("...");
  } else {
    // ... fallback logic?
  }
})();

或者已经回答过,您可能希望将代码包装在window.load var中。也是一个匿名函数。

答案 2 :(得分:-1)

您是否尝试将条件放入window.onload函数?

window.onload = function(){
    // code goes here
};