JavaScript 事件 window.onload 未触发

新手上路,请多包涵

我在网站上有以下代码:

  window.onload = resize;
 window.onresize = resize;

 function resize(){
  heightWithoutHeader = (window.innerHeight - 85) + "px";
  document.getElementById("main-table").style.height = heightWithoutHeader;
  document.getElementById("navigation").style.height = heightWithoutHeader;
 }

onresize 工作正常,但 onload 事件永远不会触发。我已经在 Firefox 和 Chrome 中试过了,但它们都不起作用。

感谢您的帮助,并为声誉而努力! ;D

原文由 user321068 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 562
2 个回答

我认为这里可能发生的是你的 window.onload 稍后被覆盖,检查以确保它不是通过类似 <body onload="">

您可以在调整大小功能中通过 alert(window.onload) 检查它,以查看实际附加的内容。

原文由 Nick Craver 发布,翻译遵循 CC BY-SA 2.5 许可协议

当我为合作伙伴添加我们需要的第 3 方 jQuery 代码时,我遇到了这种情况。我本可以轻松地将过时的 window.onload 转换为准备就绪的 jQuery 文档。也就是说,我想知道是否有现代的、跨浏览器兼容的解决方案。

有!

 window.addEventListener ?
window.addEventListener("load",yourFunction,false) :
window.attachEvent && window.attachEvent("onload",yourFunction);

现在我知道了……我可以转换我的代码以使用 jQuery 路由。而且,我会要求我们的合作伙伴重构他们的代码,以便他们停止影响网站。

我找到修复程序的来源 –> http://ckon.wordpress.com/2008/07/25/stop-using-windowonload-in-javascript/

原文由 Allen Hurff 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题