我已阅读问题window.onload 与 <body onload=""/>的答案。在那个问答中,许多人声称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”页面不会发生这种情况。为什么?
虽然这是一个测试,但我的目标是使用 RegisterStartupScript 或 RegisterClientScriptBlock 在 aspx 页面上执行类似的操作,因此我希望能够在不使用主体 onload/onunload 而是使用 window.onload/onunload 的情况下重新创建“测试 1”的行为.