onload 関数の値を取得して変更する方法はありますか?
すなわち
このタグの onload の値を取得したい:
<body onLoad="test();">
これを行う方法はありますか?
特定の状況で呼び出される関数を変更する必要があるためです。
onload 関数の値を取得して変更する方法はありますか?
すなわち
このタグの onload の値を取得したい:
<body onLoad="test();">
これを行う方法はありますか?
特定の状況で呼び出される関数を変更する必要があるためです。
はい、から入手できますwindow.onload
。
var func = window.onload;
あなたの例を考えると、次のような関数が得られます。
var func = function(event) {
test();
};
そのため、必要なときにいつでも関数を呼び出すことができますが、event
渡すオブジェクトはありません。
func();
onload
変更するには、イベントが発生する前に次のようにします。
<body onload="test();">
<script>
var func = window.onload;
alert(func); // alerts the function
if (condition_is_met) {
window.onload = function() {
/* my new func */
};
}
</script>
</body>
これにより、元の関数が新しい関数で上書きされます。イベントが発生する前にそれを行う限り、新しい関数が呼び出されます。