私はjavaScriptを初めて使用し、コールバック関数をイベントに配線するさまざまな手法を検討していました。body要素のonloadイベントへのコールバック関数の配線
すべてのJSコードをhtmlから分離し、window.onload
ブロック(すべてのヘッドバックJavaScriptによって強く推奨されています。私はそれに従っています)のすべてのコールバック関数をワイヤリングするテクニックでは、onloadイベントのbody要素の配線が機能しません。
私は、2つの警告ボックスを期待して(私はボタンをクリックしたとき)Hii
がHello
と他の続いたが、私は(ボタンのクリックで)こんにちはのみ取得していますが、その前に、私はHii
警告ボックスが届きませんよ。
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script type="text/javascript">
function fun1() {
alert("Hii");
}
function fun2() {
alert("hello");
}
window.onload = function() {
document.getElementsByTagName('body')[0].onload = function() {
fun1();
};
document.getElementById('btn1').onclick = function() {
fun2();
};
};
</script>
</head>
<body>
<input type="button" id="btn1" value="Click">
</body>
</html>
質問の第2部分。私はhtmlコード自体にbody
要素のonload
を移動し、次のコードで
Hii
を持つ唯一の警告ボックスを得るが、期待通りに、ボタン上の
onlick
イベントが動作しません警告ボックス
Hello
。
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script type="text/javascript">
function fun1() {
alert("Hii");
}
function fun2() {
alert("hello");
}
window.onload = function() {
document.getElementById('btn1').onclick = function() {
fun2();
};
};
</script>
</head>
<body onload="fun1()";>
<input type="button" id="btn1" value="Click">
</body>
</html>
この不確実な動作は私を困惑させています。