7

index.html

<html>
<head>
<script type="text/javascript" src="foo.js"></script>
<script type="text/javascript">
window.onload = function() {
    console.log("hello from html");
};
</script>
</head>
<body>
<div class="bar">bar</div>
</body>
</html>

foo.js

// this js file will be completely ignored with window.onload
//window.onload = function() {

    console.log("hello from external js");

    var bar = document.getElementsByClassName("bar");

    // this returns 0 instead of 1
    console.log(bar.length);
//};
  1. window.onloadを html で使用すると、window.onload外部からの js は無視されます。
  2. window.onloadfrom external js がコメントアウトされている場合は 0 を返しbar.lengthます。
  3. window.onloadfrom html を削除すると、from window.onloadexternal js が正常に動作します。

両方を使用できない理由を誰か説明できますwindow.onloadか?

HTMLで使用する必要ある場合window.onload、ウィンドウが外部jsからロードされているかどうかをどのように確認できますか?

4

3 に答える 3

0

その通りです。独自の onload を上書きしていますが、このようにいつでも新しいイベント リスナーをウィンドウにアタッチできます。

function onLoadHandler(){
console.log("hello from external js");

var bar = document.getElementsByClassName("bar");

// page not loaded, so this returns 0 instead of 1
console.log(bar.length);
}
if (window.addEventListener) {
window.addEventListener('load', onLoadHandler); }
 else if (window.attachEvent) { window.attachEvent('onload', onLoadHandler ); }
于 2013-04-01T20:55:03.420 に答える