ホームページ  >  記事  >  ウェブフロントエンド  >  js window.onloadの複数関数の読み込みと関数の追加について詳しく解説_javascriptスキル

js window.onloadの複数関数の読み込みと関数の追加について詳しく解説_javascriptスキル

WBOY
WBOYオリジナル
2016-05-16 17:05:021550ブラウズ

プロジェクトを実行するときに window.onload を使用する必要があることがよくあります。

は次のように使用されます:

function func(){alert("これはウィンドウの onload イベントです!");return;}

window.onload=func;

または次のように:

window.onload=function(){alert("これは window onload イベントです!");return;}

しかし、window.onload は複数の関数を同時にロードすることはできません。

例:

関数 t(){
alert("t")
}
関数 b(){
alert("b")
}
window.onload =t ;
window.onload =b ;

前のコードは後で上書きされ、上記のコードは b のみを出力します。

この問題を解決するには、次のメソッドを使用できます。
window.onload =function() { t(); }

別の解決策は次のとおりです:

コードをコピーします コードは次のとおりです:

function addLoadEvent(func) {
var oldonload = window.onload;//前の onload イベントの関数を取得します
if (typeof window.onload != 'function') {/ /型が 'function' であるかどうかを判断します。typeof は文字列
window.onload = func;
} else {
window.onload = function() {
oldonload(); を返すことに注意してください。 //呼び出す前にオーバーライドする onload イベントの関数---->js のことはあまり詳しくないので、onload イベントの関数をオーバーライドして複数の関数を読み込むことと仮理解します
func(); // 現在のイベント関数を呼び出します
}
}
}

//(完全な例) は次のように使用されます:

関数 t(){
alert("t")
}
関数 b(){
alert("b")
}
関数 c(){
alert("c")
}
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}

addLoadEvent(t);
addLoadEvent(b);
addLoadEvent(c);
//window.onload =function() { b(); と同等;}


個人的には、暗黙的な関数を直接使用した方が速いと思います (window.onload =function() { t(); b(); c() ;} など)。もちろん、addLoadEvent を使用してください。よりプロフェッショナルになり、誰もが独自のアプローチを取る必要があります。

JS window.onload 追加関数:

コードをコピー コードは次のとおりです:

<script><br>if(window.attachEvent)//IE: ブラウザに window.attachEvent 関数が存在する場合は、window.attachEvent 関数を使用して IE かどうかを判断できます。次も使用します: if (document.all ){//..}<br>window.attachEvent("onload",function() {alert("add method");});<br>else //FireFox<br>window.addEventListener("load" ,function() {alert("add method");},true);<br></script>

が実行されると、警告メッセージがポップアップしますjs で問題が解決されました。

============関連情報================

attachEvent オブジェクト上でイベントが発生するたびに関数が呼び出されるように、指定された関数をイベントにバインドします。

Internet Explorer 5.0 以降、attachEvent メソッドが提供されています。このメソッドを使用すると、1 つのイベントに複数の処理プロセスを割り当てることができます。 attachEvent は現在の Opera でも機能します。ただし、Mozilla/Firefox はこの方法をサポートしていません。ただし、別の addEventListener メソッドもサポートしています。このメソッドは、attachEvent に似ており、複数のハンドラーをイベントに割り当てるためにも使用されます。ただし、attachEvent メソッドではイベントが「on」で始まりますが、addEventListener ではイベントが「on」で始まりません。また、通常、addEventListener には 3 番目のパラメーターがあります。パラメータは false に指定されています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。