我已经阅读了关于window.onload vs <body onload=""/>的问题的答案。在那个问答中,很多人声称
考虑这两个测试页面:
在“测试1”页面中,如果您从下拉菜单中选择一个项目并单击链接以离开该页面,然后点击返回按钮,则菜单将重置为其初始状态。然而,“测试2”页面不会发生这种情况。为什么?
虽然这是一个测试,但我的目标是在一个aspx页面上使用RegisterStartupScript或RegisterClientScriptBlock来做类似的事情,因此我希望能够重现“测试1”的行为,而不使用body onload/onunload,而是使用window.onload/onunload。
window.onload
和body.onload
是相同的。但这不是我的经验。考虑这两个测试页面:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>test 1</title>
<script type="text/javascript">
var initialSelectedIndex = 0;
function resetMenu()
{
document.getElementById("fruitMenu").selectedIndex = initialSelectedIndex;
}
</script>
</head>
<body onload="resetMenu();" onunload="resetMenu();">
<br />
<select id="fruitMenu">
<option value ="apple">apple</option>
<option value ="banana">banana</option>
<option value ="strawberry">strawberry</option>
<option value ="grape">grape</option>
</select>
<p><a href="http://www.google.com.au">google</a>
</p>
</body>
</html>
并且:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>test 2</title>
<script type="text/javascript">
var initialSelectedIndex = 0;
function resetMenu()
{
document.getElementById("fruitMenu").selectedIndex = initialSelectedIndex;
}
window.onload = resetMenu();
window.onunload = resetMenu();
</script>
</head>
<body>
<br />
<select id="fruitMenu">
<option value ="apple">apple</option>
<option value ="banana">banana</option>
<option value ="strawberry">strawberry</option>
<option value ="grape">grape</option>
</select>
<p><a href="http://www.google.com.au">google</a>
</p>
</body>
</html>
在“测试1”页面中,如果您从下拉菜单中选择一个项目并单击链接以离开该页面,然后点击返回按钮,则菜单将重置为其初始状态。然而,“测试2”页面不会发生这种情况。为什么?
虽然这是一个测试,但我的目标是在一个aspx页面上使用RegisterStartupScript或RegisterClientScriptBlock来做类似的事情,因此我希望能够重现“测试1”的行为,而不使用body onload/onunload,而是使用window.onload/onunload。