• ベストアンサー

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を読み込めない原因は何かありますでしょうか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.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

hunya0216
質問者

お礼

ご回答ありがとうございます。 UTFとかにしてもだめだとは思いましたが、一応試してみました。 結局1から作りなおしてみたら正常に動きましたが、 Shift_JISがshift-jisになっていたことによる弊害だったのかもしれません。 確かにFireFoxのエラーコンソールで確認すべきでした。 今後はそのようにしたと思います。 ありがとうございます。

その他の回答 (4)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

>サーバーなくてもhttp経由で実行って可能なのですか? AN HTTPなどで、簡易的にテスト環境をつくるといいでしょう。 ローカルとhttp経由だとだいぶ動作がことなるので http://www.st.rim.or.jp/~nakata/

hunya0216
質問者

お礼

ご回答ありがとうございます。 簡易的にテスト環境をつくれるものがあったのですね。 本件の解決には至りませんでしたが、 すごく参考になりました。 ありがとうございます。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

ローカルのPCでやってますよね?http経由でやってみては?

hunya0216
質問者

お礼

はい。 ローカルでhtmlファイルをたたいて実行しています。 http経由でとはサーバーにアップしてということですか? 試してみたいのですが、アップできるサーバーがないです。 サーバーなくてもhttp経由で実行って可能なのですか?

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.2

scriptタグ側で文字コードを指定すると どうなるかな?

hunya0216
質問者

お礼

ご回答ありがとうございます。 試してみましたが状況は変わりませんでした。 shift-jis以外にも一応UTF-8やEUC-JPも試してみましたが無理でした。

  • salonpath
  • ベストアンサー率48% (194/399)
回答No.1

<script type="text/javascript" src="com.js"></script> だとどうでしょうか

hunya0216
質問者

お礼

ご回答ありがとうございます。 いろいろ階層を変えたりしてみましたが状況は変わりませんでした。

関連するQ&A

  • 外部JSファイルが読み込まない。

    javascriptの勉強をし始めて、二日目の初心者です。 jsファイルを使って、画像をIEで表示させたいのですが、上手く読み込んでくれません。 どうか、教えてください。 ---html----------------------------------------------------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4,01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="common.js" type=text/javascript" charset="UTF-8"> </script> <script src="showImage2.js" type="text/javascript" charset="UTF-8"> </script> <title>キャラクターの表示</title> </head> <body onlaod="main()"> <noscript>JavaScriptを有効にしてください</noscript> </body> </html> ----js------------------------------------------------------------------------------ var img; function main() { img=document.createElement("img") document.body.appendChild(img); img.src="pcStay.png"; } ------------------------------------------------------------------------------------

  • 外部 js ファイルの動的読み込み

    通常、HTML で外部の Javascript ファイルを読み込む必要がある場合、 <script type="text/javascript" src="****.js"></script> としますが、これを Javascript のコード内で行いたい場合、何か方法はあるでしょうか? いわゆる、Perl での use や php での require のようなことを Javascript で実現したい - 動的に js ファイルを読み込みたいのです。 以上、お分かりになる方、よろしくお願いします。

  • 複数の外部jsをランダム表示させたい

    1つのhtmlの中で <script type="text/javascript" src="001.js"></script> <script type="text/javascript" src="002.js"></script> <script type="text/javascript" src="003.js"></script> といった複数のjsをランダムで表示させるコードや、サンプル掲載サイトを教えていただけませんか? 各jsの中身はテキストや画像などHTMLに表示されるものになっています。 よくあるランダムバナーやランダムリンクのjs版という感じです。 画像やテキストのランダムスクリプトを使って、呼び出される部分に当たるところを上記のようなjsに変えてみたりもしたのですが、IEやOperaではOKでしたがFirefoxではエラーになってしまったり、表示されなくなったりして上手くいきませんでした…;; よろしくお願いいたします。

  • 外部呼出しのjsファイルについて

    外部呼出しするファイルを直接HTML内に記述したいのですがどのようにしたらよいのかわかりません。 ご存知の方がいましたらお教えください。 通常の方法は分かるのですが... <script LANGUAGE="javascript" src="xxx.js"></script> このような形で記述したいです。 <script LANGUAGE="javascript"><!-- src="xxx.js"; //--> </script>

  • shadowbox.jsについて

    shadowbox.jsとslimbox.jsを併用したいと考えています。 もともとshadowbox.jsをPrototypeで使用し、HTMLを呼び出すのに使用していたのですが、 画像のライトボックス表示にslimbox.js(jquery使用)を使いたいと思い、 両方とも記述したらshadowboxの方が正常に動作しなくなりました。 何か解決策はありますでしょうか。 非常に困っています。お願いします。 ちなみに以下の様なコードをhead内に記述しております。 <script src="../../common/js/prototype.js" type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="../../common/js/shadowbox/shadowbox.css"> <script src="../../common/js/shadowbox/shadowbox.js" type="text/javascript"></script> <script type="text/javascript">Shadowbox.init();</script> <link rel="stylesheet" type="text/css" href="shadowbox.css"> <script type="text/javascript" src="shadowbox.js"></script> <script type="text/javascript">Shadowbox.init();</script> </script> <link href="../../common/css/slimbox/slimbox.css" type="text/css" rel="stylesheet" media="screen" /> <script type="text/javascript" src="../../common/js/jquery.js"></script> <script type="text/javascript" src="../../common/js/slimbox.js"></script> <script type="text/javascript"> //slimbox $(document).ready(function() { $('a[rel*=lightbox]').slimbox(); }); </script>

    • ベストアンサー
    • CSS
  • 外部ファイルJS参照を全て消さないと「文字が正しくありません」エラー

    実に不思議なのですが、 以下のように4つのJSファイルをインクルードしているHTMLファイルを ローカルで開くと「文字が正しくありません」とスクリプトエラーが何回かでます。 ですが、script1~4.js の行を全てコメントアウトすると、エラーはでません。 1~4のどれかにエラーが含まれているのかと、一つ一つを外してみましたが、 どの行を外しても、やはり「文字が正しくありません」と出てしまいます。 ローカルの然るべきパスに1~4はあります。また、HTML同様、JSもEUCになってます。 何が原因なのでしょうか? <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <title>タイトル</title> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <meta http-equiv="content-script-type" content="text/javascript"> <meta http-equiv="content-style-type" content="text/css"> <link href="../css/style.css" rel="stylesheet"> <script src="../js/script1.js" type="text/javascript"></script> <script src="../js/script2.js" type="text/javascript"></script> <script src="../js/script3.js" type="text/javascript"></script> <script src="../js/script4.js" type="text/javascript"></script> </head>

  • IE8

    Web ページ エラーの詳細 ユーザー エージェント: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB5; FunWebProducts; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; YJSG3) タイムスタンプ: Sat, 11 Apr 2009 08:57:12 UTC メッセージ: オブジェクトがありません。 ライン: 58 文字: 2 コード: 0 URI: http://cp.cocacola.jp/common/script/conf.js メッセージ: 'swapImageObj.firstChild' は Null またはオブジェクトではありません。 ライン: 76 文字: 2 コード: 0 URI: http://cp.cocacola.jp/common/script/conf.js メッセージ: オブジェクトがありません。 ライン: 58 文字: 2 コード: 0 URI: http://cp.cocacola.jp/common/script/conf.js メッセージ: 'swapImageObj.firstChild' は Null またはオブジェクトではありません。 ライン: 76 文字: 2 コード: 0 URI: http://cp.cocacola.jp/common/script/conf.js というエラーが出るのですが、どうしたらいいですか?

  • 日が変わるごとに参照する外部jsファイルを変更したい。

    日付ごとに内容が違うjsファイル「2006_06_01.js」「2006_06_02.js」「2006_06_03.js」があり load時に日付を取得して6月2日ならば、下のsrc='http://~/2006_06_01.js'部分のファイル名を2006_06_02.jsに変えるというようなことはjavascriptとかで出来ますでしょうか? <script type='text/javascript' src='http://~/2006_06_01.js'></script>

  • *.js ファイルの読み込みについて

    お世話になります。 *.jsファイルを読み込むのに <script type='text/javascript' src='abc.js'></script> とすれば、できます。 これを、 <script type="text/JavaScript"> <!-- src='abc.js; ・・・・・・・・・ ここにabc.js内の関数などを記載 ・・・・・・・・・ //--> </script> と、いう形にできないものでしょうか。 このままだと、abc.jsは読み込まれません。 よろしくお願いします。

  • 外部JSファイルで値を受け取る方法

    以下の記述 <script src="…">★</script> で★の部分に「値」を書くことによって外部JSファイルに値を渡せるようです。がどう受け取るのかが判りません。 ★に記述するのはあくまでも値です。「var a = "…";」等の式ではありません。具体的にはGoogle+の「+1 ボタン」の設置の際のコードで <script src="https://apis.google.com/js/platform.js" async defer> {lang: 'ja'} </script> のように記述します。こうすると「Google でおすすめする」となり、「{lang: 'en'}」とすると「Recommend this on Google」となります。(反映されたのはIE11。Chromeでは効かない) なので少なくともIEではオブジェクトの受け渡しができているようです。 script要素でsrcを書くときにも閉じタグが必須である理由が今までわからなかったのですが、このためなのかなと今更ながらにカルチャーショックを受けました。 一応ググってみたのですが、グローバル領域に変数を定義してしまう方法や、クエリパラメータで指定する方法ばかりがヒットしてしまい、上記の方法に関する情報は見つけられませんでした。 https://apis.google.com/js/platform.js を丁寧に読めば判るはずですが、コードが圧縮されていて非常に読みにくくなっており断念してしまいました。 <script src="…">★</script> で★の部分に「値」を書いてそれを外部JSファイルで受け取る方法を教えてください。 よろしくお願いします。