好的,所以我知道这个问题就像是我另一个的人,他不知道document.ready是如何工作的,但这有点不同。
基本上我正在升级一个旧的Web表单应用程序,它依赖于很多专有的IE javascript到跨平台工作的东西。其中一个变化是从IE的openModalDialog函数迁移到jQuery UI的模态对话框。
这意味着我在一个网页上,在一个iframe中,点击一个按钮,该按钮在另一个允许用户选择选项的网页上触发“window.open”。当用户选择一个选项时,索引更改事件将触发,在对话框中填充隐藏文本框。这些文本框的内容应该传递回“window.opener”并传递到该页面上的文本框中。
我的问题是,将这些值传递回开启者的代码在这些文本框位于DOM之前运行,但之后 其余内容页面已加载。即使我在使用RegisterClientScriptBlock将javascript放到页面底部,在所有内容都加载后,这似乎也会发生。
问题:
任何帮助都会很棒。
答案 0 :(得分:0)
要回答第二个问题,您应该可以使用onLoad
属性。文档here。
举一个使用它的简化示例:
<!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 vs document.onload
中被盗的差异的解释<强>的window.onload 强>
- 默认情况下,在整个页面加载时会触发它,包括其内容(图像,CSS,脚本等)。
- 在某些浏览器中,它现在接管了document.onload的角色,并在DOM准备就绪时触发。
<强> document.onload 强>
- 当DOM准备好时,可以在图像和其他外部内容加载之前调用它。
为了进一步扩展ready
和onload
之间的区别,ready事件发生在加载HTML文档之后,而onload事件发生在稍后,当所有内容(例如图像)也有已经装好了。
onload事件是DOM中的标准事件,而ready事件特定于jQuery。 ready事件的目的是在文档加载后尽可能早地发生,以便为页面中的元素添加功能的代码不必等待加载所有内容。