Javascript onload事件不存在';在我点击“chrome”后才触发;“停止加载此页面”;
我有一个HMTL页面,其中有一个select控件,列出了所有月份。我添加了一个函数来设置当前月份的默认值。该函数由标记上的onload事件触发 我已经在安装了XAMPP的apache web服务器上加载了此页面。当我用FireFox或MicrosoftEdge加载页面时,它会按预期工作。当我用Chrome加载它时,它不会。除非我点击“停止加载此页面”,否则不会触发chrome上的onload事件。我做错了什么 页面似乎继续尝试加载。它永远不会停止,除非我点击停止页面 根据Vu Huu Cuong的建议,我尝试了chrome incongito模式,效果如预期。为什么它不能在正常模式下工作Javascript onload事件不存在';在我点击“chrome”后才触发;“停止加载此页面”;,javascript,html,Javascript,Html,我有一个HMTL页面,其中有一个select控件,列出了所有月份。我添加了一个函数来设置当前月份的默认值。该函数由标记上的onload事件触发 我已经在安装了XAMPP的apache web服务器上加载了此页面。当我用FireFox或MicrosoftEdge加载页面时,它会按预期工作。当我用Chrome加载它时,它不会。除非我点击“停止加载此页面”,否则不会触发chrome上的onload事件。我做错了什么 页面似乎继续尝试加载。它永远不会停止,除非我点击停止页面 根据Vu Huu Cuong
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function populateSelects(){
var today = new Date();
var m = today.getMonth();
document.getElementById('s_month').getElementsByTagName('option')[m].selected = 'selected';
}
</script>
<title>Page Title</title>
</head>
<body onload="populateSelects()">
<div >
<select id='s_month' name='s_month' >
<option value="january">January</option>
<option value="february">February</option>
<option value="march">March</option>
<option value="april">April</option>
<option value="may">May</option>
<option value="june">June</option>
<option value="july">July</option>
<option value="august">August</option>
<option value="septemeber">Septemeber</option>
<option value="october">October</option>
<option value="november">November</option>
<option value="december">December</option>
</select>
</div>
</body>
</html>
函数populateSelects(){
var today=新日期();
var m=today.getMonth();
document.getElementById('s_month').getElementsByTagName('option')[m].selected='selected';
}
页面标题
一月
二月
前进
四月
也许
六月
七月
八月
九月
十月
十一月
十二月
您的代码在chrome上似乎运行良好。但是,如果问题仍然存在,可能是因为在解析JavaScript或添加侦听器之前事件已经发生。在这种情况下,您应该在添加侦听器之前检查文档是否已加载
if (document.readyState === "complete") populateSelects();
else window.addEventListener("load", populateSelects);
此外,您还可以使用
DOMContentLoaded
事件,该事件在解析文档时触发,而不是load
所做的加载。我无法帮助您使用此方法,但您可以将侦听器放在脚本标记中,而不是html中。这样地
addEventListener(“DOMContentLoaded”,函数(事件){
普及选举();
});代码>它在我的Chrome上运行良好,也许你的Chrome有问题?你试过隐姓埋名模式吗?只是试过它与图标模式,它的作品!!!这是什么意思?可能是缓存?@afshin转到chrome://settings/clearBrowserData
并仅选择过去一小时的缓存图像和文件
,然后清除数据。我应该在那之后工作,但我没有。页面继续尝试加载,并且从未停止!这个更新成功了。为什么在chrome上把事件添加到标签失败了?!我不知道,这看起来像是chrome中的一个bug。其他人说它可以在他们的chrome安装上运行,所以你可以尝试重新安装chrome,或者检查日志。