プロが教える店舗&オフィスのセキュリティ対策術

以下の HTML コードのように書くと <p id="info"></p> に外部 js から文字が入ります。
head 内に同じ外部 js を読み込ませると文字が表示しません。
head 内に外部 js を読み込ませて表示させるには、どのようにすれば良いのでしょうか?
また、表示しない原因は何でしょうか ?

ご回答よろしくお願いいたします。

htmlソース------------
<!DOCTYPE html>
<!-- saved from url=(0013)about:internet -->

<html lang="ja">
<head>
<meta charset="UTF-8">
</head>

<body>

<div>
<p id="info"></p>
</div>
<script src="./sample.js"></script>
</body>
</html>

sample.js ----------------

switcher();

function switcher () {
document.getElementById( 'info' ).innerHTML = "テキスト A";
}

A 回答 (2件)

head内に読み込ませるとページの読み込みが完了する前に、switcher(); が


実行されてしまうため、id="info"が見つからないので処理されません。
ページの読み込み完了時に何らかの処理を行いたい場合、<body>タグの中で
onLoadを使って記述します。

したがって、<body onLoad="switcher()">のように指定する必要があります。
なおこの場合は、sample.js中のswitcher();は不要です。

参考URL:http://www.ajaxtower.jp/js/event/index1.html
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2013/06/22 23:56

DOM構築のタイミングの差だね。


window.onloadを使えばheadに書いても反映されるよ。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
タイミングの違いはわかっていたのですが、方法がわかってうれしいです!

お礼日時:2013/06/22 23:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!