web-dev-qa-db-ja.com

HTMLでのJavaScriptオンロード

Javascriptのonloadについて質問したいです。

コード<%@ include file ="body.jsp"を使用してJSPページを作成しています。含まれるbody.jspには以下が含まれます。

<table onload="function()">

これはshould javascript関数をロードしますが、ページに影響を与えないようです。 onloadbodyタグでのみ使用できますか?

22
Questions

Onloadは、<body><img><script><iframe>タグにのみ使用できます。これは、外部リソース(イメージ、スクリプト、フレーム)またはページ全体を通知するためです。 (body)がロードされました

HTML5なので、これらはloadイベントを発生させることもできます:<link><style><input type=image><object>
これらのサポートは依然としてヒットまたはミスになる可能性があります( e.g。older Android browsers

39
gblazex

なぜ<script tag>

。jspファイル内

<script>
    window.onload = function() {
        alert("Hello!");
    }
    // or to execute some function
    window.onload = myFunction; //notice no parenthesis
</script>
14
Marko

他の人がすでに述べたように、onLoadイベントはテーブルで発生しません。できることは、onLoad-handlerをbody要素にアタッチし(ページがロードされると起動します)、たとえばテーブルにidを割り当てることでテーブルを操作することです。

<body onload="function() { var table = document.getElementById("table-id"); ... }">
    <table id="table-id"></table>
</body>

JavaScriptフレームワークを使用していますか?

3
philgiese

「onLoad」は、bodyタグおよびframesetタグで使用できます。使用できるアクションを確認するには:

<body onload="function(){alert('This is an action!')}">
2
Thariama

私が見つける最も簡単な方法は、外部のjavascriptファイルとjqueryを使用することです。

// Variables and functions you want to declare 
var socket = io.connect();
// .....

// Function you want to run on load
$(function() {
    $('#submit').click(function() {addUser();});
    // ... any other functions you want to run on load
});

これは私が取り組んでいたものからのコードスニペットです。変数は、コードの実行前に宣言されます(Webソケットを作成します)。次に、jqueryドキュメントセレクター($)ロード時に実行され、init関数を呼び出してhtmlを変更します。これを使用して、すぐに実行される匿名関数を呼び出します。

0
pangolin

コードを使用してテーブルの直後に<script>タグをスローできます。スクリプトタグに到達すると、その上のテーブル要素のDOMがロードされ、その下のスクリプトでアクセスできるようになります。

:以下は、質問には適用されず、他の回答が表示されます。

イベントを追加するには、javascriptのaddEventListener関数を使用することをお勧めします。これにより、イベントをリッスンしたい他の誰かによって上書きされたり、上書きされたりすることがなくなります。

var iframe = document.getElementsByTagName('iframe')[0];
iframe.addEventListener('load', function(event){ console.log("iframe Loaded", event); })
0
CTS_AE