- ベストアンサー
IE8で外部jsファイルが読み込めない
htmlでjavascriptを使用しようとhtmlファイルとjsファイルを同階層に置き、下記のように外部jsファイルを読み込んでいます。 <script type="text/javascript" src="./com.js"></script> しかし、IE8でそのhtmlを開くと 「メッセージ: 文字が正しくありません。ライン: 1文字: 1コード: 0 URI: file:///C:/Users/PCUser/Desktop/test/common/js/com.js」 というエラーが発生してjavascriptが読み込めません。 秀丸でsrc="./com.js"をクリックするとソースが表示されるのでパスは間違えていないと思います。 また、簡単なボタン押下時にalertを表示するscriptを作成して確認したところ、FIRE FOXでは正常に動きましたが、IE8ではやはり動きませんでした。 文字コードはhtml、javascript共にshift-jisです。 他にjavascriptを読み込めない原因は何かありますでしょうか? よろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>shift-jis以外 日本語が混ざっているならUTFとかにしてもだめだよ だってjsのファイルがUTFじゃないんだもん それに "shift-jis" じゃなく "Shift_JIS" だよ。(ハイフンじゃなくアンダーライン) UTF-8にしてみたというなら jsに日本語が混ざっているならjsもUTF-8で再保存。 日本語が全く混ざっていないならどれを指定しても同じ。 もし本当に試験したのが「alertのみ」であったなら内容を日本語無しの"test"だけにするとかしてみてごらん。 そうでないならjsのどこかがおかしいよ。例えば括弧の対応が足りないとか ね。 そういうのを潰してからじゃないとだめかもね http://www.koikikukan.com/archives/2005/11/10-235011.php 括弧対応がおかしいとかがあるなら firefoxでもエラーが出るからIEのエラーデバグがしにくいならfirefoxのエラーコンソールを使うのも手かな。 他の人が「HTTP経由でやってみたら」とか言ってるけど、js自体はローカル駆動するものだからサーバへpostとかする部分が無い限り、どっちでやっても同じ結果になるから無意味。 http://www.google.com/search?lr=lang_ja&q=ie%20javascript%E3%81%AE%E3%83%87%E3%83%90%E3%82%B0
その他の回答 (4)
- yambejp
- ベストアンサー率51% (3827/7415)
>サーバーなくてもhttp経由で実行って可能なのですか? AN HTTPなどで、簡易的にテスト環境をつくるといいでしょう。 ローカルとhttp経由だとだいぶ動作がことなるので http://www.st.rim.or.jp/~nakata/
お礼
ご回答ありがとうございます。 簡易的にテスト環境をつくれるものがあったのですね。 本件の解決には至りませんでしたが、 すごく参考になりました。 ありがとうございます。
- yambejp
- ベストアンサー率51% (3827/7415)
ローカルのPCでやってますよね?http経由でやってみては?
お礼
はい。 ローカルでhtmlファイルをたたいて実行しています。 http経由でとはサーバーにアップしてということですか? 試してみたいのですが、アップできるサーバーがないです。 サーバーなくてもhttp経由で実行って可能なのですか?
- SAYKA
- ベストアンサー率34% (944/2776)
scriptタグ側で文字コードを指定すると どうなるかな?
お礼
ご回答ありがとうございます。 試してみましたが状況は変わりませんでした。 shift-jis以外にも一応UTF-8やEUC-JPも試してみましたが無理でした。
- salonpath
- ベストアンサー率48% (194/399)
<script type="text/javascript" src="com.js"></script> だとどうでしょうか
お礼
ご回答ありがとうございます。 いろいろ階層を変えたりしてみましたが状況は変わりませんでした。
お礼
ご回答ありがとうございます。 UTFとかにしてもだめだとは思いましたが、一応試してみました。 結局1から作りなおしてみたら正常に動きましたが、 Shift_JISがshift-jisになっていたことによる弊害だったのかもしれません。 確かにFireFoxのエラーコンソールで確認すべきでした。 今後はそのようにしたと思います。 ありがとうございます。