
実に不思議なのですが、
以下のように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>
No.5ベストアンサー
- 回答日時:
#4 の者ですが、あの~本当にディレクトリ構成には問題なかったのですか???
>(1) スクリプトエラーになる
>C:\Documents and Settings\user_name\デスクトップ\index.htm とおき、
>C:\Documents and Settings\user_name\デスクトップ\js\ に、script1~4.js をおく。
この構成の場合、
<script src="./js/script1.js" type="text/javascript"></script>
と、”./~” 同じディレクトリという指定でピリオドは2つでなく1つです。
ピリオドが2つという事は1つ上の階層という事で、
C:\Documents and Settings\user_name\js\ に、script1~4.js をおく必要があります。
#4 で示した b1 の件でひっかかっています。
尚、
>(2) スクリプトエラーにならない
>C:\Documents and Settings\user_name\デスクトップ\NewFolder\index.htm とおき、
>C:\Documents and Settings\user_name\デスクトップ\NewFolder\js\ に、script1~4.js をおく。
は、HTMLで
C:\Documents and Settings\user_name\デスクトップ\js\ に、script1~4.js をおく事を要求していて、
(1) の検証環境が残っているとそれを見に行っていますが。
逆に(1) の検証環境がなければこれもエラーです。
(3) はたぶん上位の階層がないのでブラウザが補正して同じ階層のフォルダを見に行っているのでしょう。
すみません、御礼遅くなりました。
あれから手付かずでいたのですが、
今日試したらなぜかでなくなりました。
ご教示のような、ディレクトリ構成の問題
だったのかもしれません。
ともかく、いろいろご示唆いただいた点は
今後のトラブルシューティングでも参考にさせていただきます。
ありがとうございました。
No.4
- 回答日時:
情報が少ないので調べ方を。
まず
><script src="../js/script1.js" type="text/javascript"></script>
この記述先に本当にファイルがあるのか?
<a href="../js/script1.js">script1</a>として
ダイアログボックスなりそのファイルが表示されるなり
それなりに動作するでしょうか?
(確認環境により動作は異なるので、「ページを表示できません。」とならなければ存在は確認できます。
ついでにダウンロードなりなんなりすれば、目的のファイルであるかどうかも確認できます。)
で、ここで然るべき処にあるつもりなのにないとなる可能性は、
a.基準となる場所が違う。
a1.通常はその閲覧しているHTMLファイルのある場所である。
a2.<base href=~> を指定した場合は、その指定した内容が基準となる。
b.示したい場所と指定が違う。
b1."../js/script1.js" は相対アドレスで基準となるフォルダ(場所)の1つ上に js というフォルダ(場所)がある。という指定ですが・・・。
HTMLファイルがあるその場所に js ファルダがあるなら ..ふたつでなく .ひとつ。
c.フォルダ名,ファイル名が違う。
c1.全角半角が違ったり、小文字のi(アイ)が抜けてたり(小さいので見落としやすい)、小文字のl(エル)と数字の1(イチ)を間違えたりなど・・・。
ファイル名の違いの検査はHTMLファイルと同じ場所にコピーするなり持ってきて、
<a href="./script1.js">script1</a>として検証。
これでOKでフォルダ付きでNGならフォルダ名に疑いが・・・。
リンクで問題なかった場合はファイル内の記述ですが、
漢字などがコメントを含めて使われていないかがまず
疑いのポイントになりますが、
(文字化けなどで、コメントがコメントとして扱われていないとかコメントの終わりが終わりとして見られず必要以上にコメント化されているとか)
ただ、この場合は「文字が正しくありません」でなく他のスクリプトエラーと思われ・・・。
あとそれ以上は、再現するJSファイルの内容を提示して頂けないと・・・。
(再現さえすれば、まったくの別物でも良いかと。)
koutarou504さん、詳細なレスありがとうございます。
また、御礼遅くなってすみません。
>情報が少ないので調べ方を。
#1さんにお返事したように、問題を切り分けていくと
JSファイルの中身には依存していないような印象を持っています。
その他、ファイルの有無など、ディレクトリ構成には問題ありませんでした。
No.3
- 回答日時:
script1.jsの中身を補足で挙げていただくわけにはいかないですか
BLUEPIXYさん、いつもご教示ありがとうございます。
御礼遅くなってすみません。
#1さんにお返事したように、問題を切り分けていくと
JSファイルの中身には依存していないような印象を持っています。
JSファイルを公開するのはまったく問題ないですが。。。

No.2
- 回答日時:
ソースを見るかぎり、htmlファイルはeuc-jpで記述されているようですが、jsファイルの文字コードはどうなっていますか?
eucのページからshift_jisのjsファイルを呼び出すと、IEではスクリプトエラーになります。
回避方法は、<script>タグ内に carset="shift_jis"と入れます。
御礼遅くなってすみません。
レスありがとうございます。
質問にも書きましたが、JSもHTMLも、EUC-JPに統一されています。
以前もハマったことがありまして(コメント部分が文字化けして悪さしていた)。
回避方法(carset="shift_jis)の方は知りませんでした。
大変参考になりました。
原因については、#1さんのものが怪しいですが、はっきりしません。
No.1
- 回答日時:
的外れだったらごめんなさい。
.jsファイルのパスに漢字は混ざってませんか?
スペースの入ったフォルダ名は混ざってませんか?
それが悪さをしているかも。
確認してみてください。
御礼/報告遅くなってすみません。
どうもご教示のことがビンゴくさいのですが、
いまいち判然としません。
(1) スクリプトエラーになる
C:\Documents and Settings\user_name\デスクトップ\index.htm とおき、
C:\Documents and Settings\user_name\デスクトップ\js\ に、script1~4.js をおく。
(2) スクリプトエラーにならない
C:\Documents and Settings\user_name\デスクトップ\NewFolder\index.htm とおき、
C:\Documents and Settings\user_name\デスクトップ\NewFolder\js\ に、script1~4.js をおく。
(3) スクリプトエラーにならない
C:\index.htm とおき、
C:\js\ に、script1~4.js をおく。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するQ&A
- 1 日が変わるごとに参照する外部jsファイルを変更したい。
- 2 外部jsからdocument.writeするときに文字サイズの指定の仕方
- 3 javascriptのalertで文字化けが解消されません。(外部js
- 4 以下のJavaScriptを外部参照してメールフォームを運用しているの
- 5 <head>外での、外部css、外部jsの読み込み
- 6 外部JSファイルでポップアップウインドウを開くには?
- 7 外部jsファイルから本体の関数を呼ぶには
- 8 外部JSファイルで値を受け取る方法
- 9 jQuery.jsを使ったhtml外部読み込み
- 10 document.write()を外部JSファイルに記述すると、IE8で表示されない
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
プルダウンメニューを別ファイ...
-
5
複数のJavascriptを1つのscrip...
-
6
Dreamweaver で 外部JSを読み込...
-
7
<script src="">読み込まない
-
8
javascriptのalertで文字化けが...
-
9
サーバー上でJqueryが使用できない
-
10
JavaScript内の関数を別のファ...
-
11
外部ファイルJS参照を全て消さ...
-
12
IE8で外部jsファイルが読み込め...
-
13
jQuery 読み込んだ外部htmlフ...
-
14
JavaScriptのエラー ( 関数の...
-
15
アクセスカウンターのつけ方。
-
16
呼出したjsファイル内で他jsフ...
-
17
javascriptファイルは1つに統...
-
18
リンク先のURLを記述せずに、Ja...
-
19
Javascriptでのツリーメニュー...
-
20
外部ファイル名を変数で指定で...
おすすめ情報