画面で各ページの共通する部分をJavaScriptで作って、外出しファイルにし、それぞれのページで使っています。
つまり、
<script language=JavaScript1.2 src=xxx.js></script>
としているわけですが、その外出ししたスクリプトファイルの中で、さらに別のスクリプトファイルを入れ子状態で使っています。
つまり、上記の「xxx.js」の中で、
document.write("<script LANGUAGE=JavaScript1.2 src=yyy.js></script>\n");
としているわけです。
NN4.78では、うまく行っていると思ったのですが、IE5.5で見たら、表示がおかしいことに気づきました。
このyyy.jsでテーブルを定義し、テーブルを途中まで吐き出して、残りはxxx.jsで吐き出しています。
ところが、IEでブラウズすると、xxx.jsで吐き出す残りの部分がyyy.jsで吐き出す<table><tr>・・・より前に来てしまします。
(・_・")?
IEではJavaScriptの入れ子は認識できないのでしょうか?
やっぱり、IEだからですかね?
No.1ベストアンサー
- 回答日時:
出来る出来ないではなく考え方の相違。
これは実行順が親(前半)→子→親(後半)ではなく親(前半)→親(後半)→子のようになるからである。
バグではなく仕様。
IEではプログラムが実行された後に書き込んだ命令を読み込むので上記のように実行されたこととなる。
つまりいったん親のjavascriptが書き込んだ後(この状態では子のscriptは読み込まれていない),書き込まれた文章を認識し子のscriptを実行する。
IE/NNで同じ動作で行う場合は FUNCTION 化しておき関数として読み込む。
以下SAMPLE/
>>HTML
<html>
<head>
</head>
<body>
<script language=JavaScript1.2 src=outfile2.js></script>
<script language=JavaScript1.2 src=outfile.js></script>
</body>
</html>
>>outfile.js
document.write("****************************\n");
out2();
document.write("****************************\n");
>>outfile2.js
function out2(){
document.write("<TABLE><TR><TD>DATA SET------------>></TD></TR></TABLE>\n");
}
この回答への補足
>バグではなく仕様。
私もそのように思ったので、「IEは・・・」と書きました。
バグとは思っていません。
ただ、質問を出してからも色々実験してみると、子を呼ぶ時に、つまり、
document.write("<script LANGUAGE=JavaScript1.2 src=yyy.js></script>\n");
の部分で「yyy.js」を絶対パスで書くと上記の現象が起き、相対パスで書けば起きないらしいことがわかってきました。
もう少し色々実験してみようと思います。
アドバイスありがとうございました。
仲間内でこの問題について話し合い、結論としては「やっぱりM社の製品だからだね。ネスティングも出来ないなんてアプリケーションとしては最低だね。これは不具合だ」ということになりました。
従って、
<script language=JavaScript1.2 src=yyy.js></script>
<script language=JavaScript1.2 src=xxx.js></script>
と分けることにしました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript jsで、switch文で書かれた分をif文にできませんか。 1 2022/07/28 15:10
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- HTML・CSS HTMLを正しく表示させるには 2 2023/06/18 09:12
- JavaScript jsで、配列内の文章を改行する際どのようにすればいいですか。 3 2022/07/05 20:40
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別ファイルのfunctionの読み込み方
-
ひとつの外部ファイルに複数の...
-
外部ファイル名を変数で指定で...
-
【Google Apps Script】「ライ...
-
複数のJavascriptを1つのscrip...
-
外部.jsの内容を一部置き換えて...
-
JavascriptとJqueryを混在し記述
-
javascriptファイルは1つに統...
-
呼出したjsファイル内で他jsフ...
-
Dreamweaver で 外部JSを読み込...
-
JavaScriptのエラー ( 関数の...
-
cssにjavascriptを入れる?呼び...
-
ポップアップカレンダーサンプル
-
<a href="#" …>の意味を教えて...
-
bodyにidをつける理由は何ですか?
-
SCRIPT5007: 未定義または NULL...
-
base64encodeでの文字化けについて
-
リンク移動先のURLを取得
-
スマホ上で、左右スワイプで次...
-
HTML内に記載された画像のURLを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別ファイルのfunctionの読み込み方
-
複数のJavascriptを1つのscrip...
-
Dreamweaver で 外部JSを読み込...
-
javascriptとApacheの設定
-
【Google Apps Script】「ライ...
-
cssにjavascriptを入れる?呼び...
-
JavaScriptのエラー ( 関数の...
-
ひとつの外部ファイルに複数の...
-
javascriptファイルは1つに統...
-
JavascriptとJqueryを混在し記述
-
<script src="">読み込まない
-
javascriptのalertで文字化けが...
-
レンタルサーバーでjavascript...
-
javascript内で外部ファイルを...
-
外部読み込みで動かないときの...
-
外部ファイルを実行
-
プルダウンメニューを別ファイ...
-
ホームディレクトリを示すチル...
-
外部.jsの内容を一部置き換えて...
-
xmlHttpRequest.send( EncodeHT...
おすすめ情報