body onload と window.onload を同時に使用できますか? このコードを使用して試しました
<body onload = "alertFirst()">
</body>
<script>
window.onload = alertSec;
</script>
しかし、うまくいきませんでした。確認してくれる人が必要なだけです。どうもありがとう
body onload と window.onload を同時に使用できますか? このコードを使用して試しました
<body onload = "alertFirst()">
</body>
<script>
window.onload = alertSec;
</script>
しかし、うまくいきませんでした。確認してくれる人が必要なだけです。どうもありがとう
あなたの質問に対する答えは「いいえ」です。ただし、それを回避する方法があります。
両方の呼び出しを 1 つの onload 関数に追加するのが理想的ですが、1 つが既に追加された後に onload ハンドラーを追加する必要があり、これを容易にするフレームワークを使用していない場合は、次のように処理できます。
<html>
<head>
<script type="text/javascript">
function alertFirst(){
alert('First');
}
function alertSec(){
alert('Second');
}
</script>
</head>
<body onload="alertFirst();">
content
</body>
<script>
var func = document.body.onload;
window.onload=function(){
func();
alertSec();
}
</script>
</html>
いいえ、document.body.onload
実際には にマッピングされwindow.onload
ます。自分で確認できます —<body onload="a()">
と to がconsole.log(window.onload)
ある場合a()
は、コンソールに出力されます。
できることは、他の 2 つの関数を呼び出す 1 つの onload イベント ハンドラーを持つことです。
window.onload = function () {
a();
b();
};
または 2 つのイベント リスナー
window.addEventListener('load', a, false);
window.addEventListener('load', b, false);
(イベント ハンドラーを追加することで) 可能ですが、両方を持つべきではありません。
代わりに、window.onload への呼び出しを追加します。
<html>
<head>
<script>
window.onload = function() {
alertFirst();
alertSec();
}
</script>
</head>
<body>
</body>
使用する 1 つ以上のスクリプトの BODY HTML タグにイベント ハンドラーがある場合でも、それを JavaScript コードに移動できます。以下の例を参照してください。
スクリプト #1:
<script language="javascript">
function start(){
...code for script #1...
}
</script>
<body onload="start()">
スクリプト #2:
<script language="javascript">
function init(){
...code for script #2...
}
window.onload=init;
</script>
結果:
<script language="javascript">
function start(){
...code for script #1...
}
function init(){
...code for script #2...
}
window.onload=function(){
start();
init();
}
</script>
<body>
私はそれがあなたを助けることができると思います。