- PR -

Javascriptのincludeについて

投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2008-09-17 22:59
こんにちは。

現在、Tomcat5.5,JDK1.6でWEBアプリを作成してます。

現在、ページを開くとbody-onload時にスクリプトが走るページを作っています。
特にActionを介する処理では無いです。

実際呼ばれるscriptのfunctionは別ファイル(sample.js)に書いてます。
そこで、今までFireFox3で作成していて気が付かなかったのですが、
IE6ではそのfunctionが読み取られない現象が起きてます。

他ブラウザでも確認したところ、
Safari3.1.2 ×
Opera 9.52 ○
Chorome ○
と言う状況でした。

このscriptファイルは同ディレクトリにあり
<script type="text/javascript" src="sample.js"></script>
このようにincludeしてます。

また、このファイルには//のコメントアウトで日本語も
多くつけてます。

他ブラウザと比べるとソースのミスはなさそうで、単純に呼び出せていない(alert×)ようなのですが、どうしたらよいのでしょうか?

お分かりになりましたら、よろしくお願いします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-09-17 23:55
そもそも通信できているんですか?
HTTP通信の有無など確認してください。
アドレスバーにURLを入力すれば分かるかと思います。

javascriptの内容も、単純にalert(1)としか書かれていないファイルにして、
読み込めるかを確認してみてください。
読み込まれれば、通常アラートが表示されます。

つまり、読み込みが出来ていないのか、
ブラウザ依存のコードになっているのかを、
それで確認できるかと思います。

ちなみにJavaScriptの質問は、リッチクライアントの会議室になります。
JavaとJavaScriptは違うものという認識はあっていますか?
未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2008-09-18 00:41
かつのりさん、ありがとうございます。

おっしゃるように、functionを読み込まないブラウザについてはalertしてもだめでした。
空ファイルにして実行するとalertが効くので、やっぱり日本語表記が問題かと思ってます。

一応、全てutf-8で統一しているのですが、scriptファイルやcssファイルはファイル形式はutf-8で保存してますが、文字コードの指定は明示していません。

Windows標準の文字コードはShift-Jisなので、ここら辺が影響しているのでは無いかと思ってますが・・。

>ちなみにJavaScriptの質問は、リッチクライアントの会議室になります。

すみません。知りませんでした。以後そちらで行います。

よろしくお願いします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-09-18 01:41
alert(1);と書かれただけのファイルを読み込んでも何も出ないということですか?

引用:

Windows標準の文字コードはShift-Jisなので、ここら辺が影響しているのでは無いかと思ってますが・・。


ブラウザがどのエンコーディングで表示しているかによると思います。
IEならブラウザの右クリックでエンコーディングを変更できますが、
問題が発生する場合のエンコーディングと、
JavaScriptファイルのエンコーディングが一致していますか?

エンコーディングの問題かと思うなら、
マルチバイトを使用しないJavaScriptを読み込ませてみましょう。
少しずつ問題の切り分けができるかと思います。

未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2008-09-18 08:35
ありがとうございます。

alertとだけを書いたjsファイルにすると読み込み、元々のfunctionを込めたもので読み込むとalertはでません。

エディタでファイルを開くと全てUTF-8で保存されていることは確認できているのですが(crlf)、htmlファイル部はMETAタグで明示的にエンコード指定しているのに対し、script,cssファイルは何も指定していません。

ここら辺が問題だと思ってます。マルチバイト対応とは具体的にどのような事でしょうか?
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2008-09-18 09:35
<script type="text/javascript" src="sample.js" charset="utf-8"></script>
は?

スクリプト自体に変な記述がある可能性は…?
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-09-18 09:59
引用:

alertとだけを書いたjsファイルにすると読み込み、元々のfunctionを込めたもので読み込むとalertはでません。


紛らわしいので・・・「読み込まれている」けど「実行されない」でいいですよね。
読み込まれていると、実行エラーは全く問題のレイヤーが違います。

引用:

htmlファイル部はMETAタグで明示的にエンコード指定しているのに対し、script,cssファイルは何も指定していません。


ブラウザがどのエンコーディングで表示しているかを確認しましたか?
METAタグのcharsetの指定は、エンコーディングを推測するためのヒントに過ぎません。
サーバから送られるcontent-type等もそうですが、
どの情報を元にエンコーディングを推測するかについては、ブラウザ次第です。
まずは、ブラウザがどのエンコーディングになっているかを確認しましょう。
未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2008-09-18 10:10
ありがとうございます。

<script type="text/javascript" src="sample.js" charset="utf-8"></script>charsetを指定してもダメでした。

IE6のエンコード指定はUnicode(UTF-になっていました。この問題のjsファイルを読み込まないブラウザはIE6とSafari3.1です。
FireFox3では、読み取るのですが、IEと同じエンコードはUnicode(UTF-でした。

このjsファイルには日本語のコメントが多数書き込まれています。一旦、全て削除して実行してみましたが、読み取らないブラウザ組は同じでした・・。
ちなみにエディタはTeraPadを使用してます。

引き続き、よろしくお願いします。

スキルアップ/キャリアアップ(JOB@IT)