Javascriptのonload
について質問したいです。
コード<%@ include file ="body.jsp"
を使用してJSPページを作成しています。含まれるbody.jsp
には以下が含まれます。
<table onload="function()">
これはshould javascript関数をロードしますが、ページに影響を与えないようです。 onload
はbody
タグでのみ使用できますか?
Onloadは、<body>
、<img>
、<script>
、<iframe>
タグにのみ使用できます。これは、外部リソース(イメージ、スクリプト、フレーム)またはページ全体を通知するためです。 (body)がロードされました
HTML5なので、これらはloadイベントを発生させることもできます:<link>
、<style>
、<input type=image>
、<object>
これらのサポートは依然としてヒットまたはミスになる可能性があります( e.g。older Android browsers )
なぜ<script tag>
?
。jspファイル内
<script>
window.onload = function() {
alert("Hello!");
}
// or to execute some function
window.onload = myFunction; //notice no parenthesis
</script>
他の人がすでに述べたように、onLoadイベントはテーブルで発生しません。できることは、onLoad-handlerをbody要素にアタッチし(ページがロードされると起動します)、たとえばテーブルにidを割り当てることでテーブルを操作することです。
<body onload="function() { var table = document.getElementById("table-id"); ... }">
<table id="table-id"></table>
</body>
JavaScriptフレームワークを使用していますか?
「onLoad」は、bodyタグおよびframesetタグで使用できます。使用できるアクションを確認するには:
<body onload="function(){alert('This is an action!')}">
私が見つける最も簡単な方法は、外部の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を変更します。これを使用して、すぐに実行される匿名関数を呼び出します。
コードを使用してテーブルの直後に<script>
タグをスローできます。スクリプトタグに到達すると、その上のテーブル要素のDOMがロードされ、その下のスクリプトでアクセスできるようになります。
注:以下は、質問には適用されず、他の回答が表示されます。
イベントを追加するには、javascriptのaddEventListener
関数を使用することをお勧めします。これにより、イベントをリッスンしたい他の誰かによって上書きされたり、上書きされたりすることがなくなります。
var iframe = document.getElementsByTagName('iframe')[0];
iframe.addEventListener('load', function(event){ console.log("iframe Loaded", event); })