
こんにちは、javascript初心者です。
HTMLのtextarea内のテキストを変えたいのですが、HTMLにJSを埋め込むと動作するのですが、外部JSファイル読み込みだとなぜか何も表示されません。
なぜでしょうか。原因のわかる方、説明をどうかよろしくお願い致します。
●HTML
<head>
<script src="test.js" type="text/javascript"></script>
</head>
<body>
<form name="form1">
<textarea name="message" id="msg" rows="5" cols ="50"></textarea>
</form>
</body>
●JS
window.onload = message();
function message(){
alert("hello"); //←これはちゃんと動作します。
document.getElementById("msg").value="hello"; //← 動作せず。
document.form1.message.value="hello"; //← これも上と同じく片方ずつ試しましたが、ダメでした。
}
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
一番簡単な方法:
↓これをbody閉じタグの上に移動して
<script src="test.js" type="text/javascript"></script>
↓jsの中身を変更する
function message(){
alert("hello"); //←これはちゃんと動作します。
document.getElementById("msg").value="hello"; //← 動作せず。
document.form1.message.value="hello"; //← これも上と同じく片方ずつ試しましたが、ダメでした。
}
message(); //←実行するだけ
で動くようになりますよ。
<head>で読み込む外部JSでwindow.onloadすると
大抵DOMの準備が終わる前に実行されるので、「#msgなんてtextareaは存在しない」というエラーが出ていると思います。
なのでbodyの中(一番最後)にファイルの読み込みと関数の実行を入れるか、
Loadの代わりにDOMContentLoadedを使ってdocument.readyStateをチェックするのがよく使われます。
No.1
- 回答日時:
≫window.onload = message();
window.onload = message;
が正しいと思うのですが、HTMLに直接書くとうまくいくという理由がはっきりしませんね。
処理の順番により、外部の時はdocumentの準備ができていない、といったところでしょうか。
別な書き方としては、
window.onload = function(){message();}
とか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
外部JavaSqriptについて
-
外部ファイルの読み込みに失敗...
-
外部ファイル
-
アクセスカウンターのつけ方。
-
外部スクリプトで表示はされま...
-
テンプレート適用でJavaが動かない
-
Yahoo!ウィジットでJavaScript
-
単一のフォームオブジェクトを...
-
Javascriptのクエリ(パラメー...
-
HTMLファイルと分ける場合について
-
javascriptの外部呼び出し
-
javascriptとJavaAppletの連携...
-
javascriptエラーについて教え...
-
スクリプト エラーについて
-
スタイルシートのメタタグの件...
-
スクロールを画像にしたくて
-
head.appendChild() の使い方
-
オリジナルのスクロールバーを...
-
processing
-
外部ファイルにするとテキスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
cssにjavascriptを入れる?呼び...
-
javascriptとApacheの設定
-
プルダウンメニューを別ファイ...
-
レンタルサーバーでjavascript...
-
初心者です。あまりに初歩的な...
-
JavascriptとJqueryを混在し記述
-
Dreamweaver で 外部JSを読み込...
-
JavaScriptのエラー ( 関数の...
-
複数のJavascriptを1つのscrip...
-
javascriptファイルは1つに統...
-
別ファイルのfunctionの読み込み方
-
JavaScriptの外部ファイル読み込み
-
processing
-
ホームディレクトリを示すチル...
-
【Google Apps Script】「ライ...
-
エラー行の行数の不思議
-
<script src="">読み込まない
-
ひとつの外部ファイルに複数の...
-
静的と動的なJavascriptの同時...
-
外部.jsの内容を一部置き換えて...
おすすめ情報