window.onload と <body onload=""/>の質問に対する回答を読みました。window.onload
その Q&A では、多くの人がとbody.onload
が同一であると主張しています。これは私が経験したことではありません。
次の 2 つのテスト ページについて考えてみましょう。
<!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」の動作を再現できるようにしたいと考えています。 .