[英]How can I wait until a web page has loaded and all controls have been populated before executing my javascript?
好的,所以我知道问题听起来像是我又是一个不知道document.ready如何工作的人,但这有点不同。
基本上,我是将一个依赖许多专有IE javascript的旧Web表单应用程序升级到可以在跨平台上工作的东西。 更改之一是从IE的openModalDialog函数迁移到jQuery UI的模式对话框。
这意味着我在一个iframe网页中,单击一个按钮触发另一个用户可以选择选项的网页上的“ window.open”。 当用户选择一个选项时,将触发索引更改事件,从而在对话框中填充隐藏的文本框。 这些文本框的内容应该传递回“ window.opener”并传递到该页面上的文本框。
我的问题是,这些值传递回首战代码运行这些文本框都在DOM 之前 ,但在这个页面中的内容后剩下的已被加载。 即使在加载完所有内容后,即使我使用RegisterClientScriptBlock将javascript放到页面底部,这似乎也会发生。
问题:
任何帮助都会很棒。
要回答第二个问题,您应该可以使用onLoad
属性。 文档在这里 。
给出使用中过于简单的示例:
<!doctype html>
<html>
<head>
<title>onload test</title>
<script>
function load() {
console.log("load event detected!");
}
window.onload = load;
</script>
<script>
const load = () => {
console.log("load event detected!");
}
window.onload = load;
</script>
</head>
<body>
<p>The load event fires when the document has finished loading!</p>
</body>
</html>
您可能还考虑使用document.onLoad。 这是从window.onload与document.onload窃取的差异的解释:
在window.onload
- 默认情况下,加载整个页面(包括其内容(图像,css,脚本等)时,将触发该事件
- 在某些浏览器中,它现在承担了document.onload的角色,并在DOM准备就绪时触发。
document.onload
- 当DOM准备就绪时可以调用它,可以在加载图像和其他外部内容之前。
为了进一步扩展ready
和onload
之间的区别,在加载HTML文档之后会发生ready事件,而在还加载了所有内容(例如图像)时会在稍后发生onload事件。
onload事件是DOM中的标准事件,而ready事件特定于jQuery。 ready事件的目的是,它应该在文档加载后尽早发生,从而使向页面中的元素添加功能的代码不必等待所有内容加载。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.