• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Javascript外部ファイルが読み込めません)

Javascript外部ファイルの読み込みに関する問題

このQ&Aのポイント
  • Javascript外部ファイルの読み込みで問題が発生しています。Windows + IE6では正常に動作するが、Windows + NN7やMac + IE5では動作しない状態です。
  • Javascript外部ファイルの読み込み方法に関する問題が発生しています。試した方法は<a href='javascript:関数名('引数');'></a>と<a href='#' onClick='関数名('引数');'></a>の両方ですが、Windows + IE6以外では動作しません。
  • Javascript外部ファイルの読み込みで正常に動作しない問題が発生しています。Windows + IE6では動作するが、Windows + NN7やMac + IE5では無反応の状態です。ブラウザの設定ではJavascriptはONになっています。

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

  • ベストアンサー
  • dayowl
  • ベストアンサー率56% (84/148)
回答No.13

奇妙な現象ですね。。。 一度ブラウザのキャッシュを削除してみてください。 IEなら、 「ツール」→「インターネットオプション」→「ファイルの削除」で

mdk
質問者

お礼

できました!!!! どんな関数名をつけてもOKです! Mac版IEって、単にリロードしただけじゃだめなんですね。 知りませんでした。 いろいろとヒントを与えてくださり、ありがとうございました。

その他の回答 (12)

  • dayowl
  • ベストアンサー率56% (84/148)
回答No.12

サーバーにはFTPでアップロードましたか? そのときアップロードは「バイナリ」または「Raw」で転送したでしょうか? 「テキスト」にすると、勝手にEUC-JPに変換されてる可能性もありなので、どうやってアップロードしたか確認してください。 それと、パーミッションの設定も要確認です。 もう一息ですね。がんばってください

mdk
質問者

補足

普段は、テキストかバイナリかは自動判別にしているので、 バイナリに指定してやってみましたが、変わりませんでした。 パーミッション、最初は644になってました。 念のため、755に変えてみましたが、やっぱり動きません。 奇妙なことを発見。 alert(''); だけを記述した関数を呼び出そうとしているのですが、 その関数名を test にすると、ちゃんと動きます。 check、checkData、data、dataCheck などの関数名をつけると、 ローカルでは動くのにアップしたとたん動かなくなるんです・・・。

  • dayowl
  • ベストアンサー率56% (84/148)
回答No.11

あとは2バイト文字をやめたほうがいいかもしれないです。 var goods=document.order_form.お申し込み商品.value; ↓ var goods=document.order_form.order_name.value; などのように変えてみたらどうでしょうか? 私は、入力フォームの名前に2バイト文字を使うというのはやらないのでわからないのですが「なんか良くなさそう」と思いましたので。。。。

mdk
質問者

補足

2バイト文字をやめたところ、動きました! なのにここでまた問題が・・・。 ローカルでは動いたのに、 サーバにアップしたとたん、また動かない・・・。

  • dayowl
  • ベストアンサー率56% (84/148)
回答No.10

お~よかったですね~ あとはMacですか。 文字コード確認してみてください。 Shift_JISなら問題無いけど、EUC-JPとかだと昔のMac+NNでは動かなかったような気がします。 HTML側に <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> の一行が入っていて 外部Javascript側もShift_JISで保存してみたらどうでしょうか?

mdk
質問者

補足

はい!徐々にですが良くなってきました。 > <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> > の一行が入っていて > 外部Javascript側もShift_JISで保存してみたらどうでしょうか? 確認したところ、すでにそうなっていました。 Mac使いの友人が、 Macではあまりアンダースコアを使わない、 というようなことを言っていたのを思い出し、 また別の文字に置き換え作戦を今試しているところです・・・。

  • dayowl
  • ベストアンサー率56% (84/148)
回答No.9

だいぶ近づいてきたみたいでよかったですね。 var bdate=document.order_form.生年月日(日).value; これの2バイトでもカッコを使うのをやめて 生年月日_日とかに変えたらどうでしょう なんか()記号が怪しい気がしますが・・・

mdk
質問者

お礼

そのとおりでした! ()を _ に置き換えると、 Windows + NN と Mac + NN で動くようになりました! ありがとうございます~~~。 がっ!Mac + IE では依然として動きません・・・。

  • Dpop
  • ベストアンサー率51% (279/544)
回答No.8

#1 です。 > IEでは動くので、.js の読み込み位置がずれているということはないと思っているのですが、勘違い?? いえ。Windows版のIE6ではそう言う問題は無いと思いますが、Mac IE5 はbaseに問題がでる場合がある。と聴いた事があるので、確認してみました。(NN7の説明が付かないな。。。 と投稿してから思いましたが。) もっと単純な、例えば document.writeln だけを含んだ関数、だけを含んだ .js を作って、各環境で動作するか確認して頂けますか。 今は、JavaScript の関数自体に問題があるのでは無いかな。と考え始めています。(やはり、base 絡みで。)

mdk
質問者

補足

超シンプルに、次のようにしてみました。 【ファイル名】 test.js 【中身】 function test(){ alert(''); } 【ファイル名】 test.html 【中身】 <html><head><title></title> <SCRIPT language="JavaScript" src="test.js"></SCRIPT> </head> <body> <a href="#" onClick="test();">てすと</a> </body> </html> 上記jsファイルとhtmlファイルを同じフォルダに保存して実行すると、 どの環境でもうまくいきます。 なのでやはり、長いスクリプトのどこかに問題があるんですね。。。 でも、#3へのお礼欄に書いた1行だけを削除してみても やっぱり動かないので、どの行が悪いのかもわからなくなってしまい、 振り出しに戻ってしまいました(泣)。 全スクリプトを見ていただきたいところなんですが、 文字数制限にひっかかってしまってできないんです。 もうちょっとねばって検証してみます。。。

  • dayowl
  • ベストアンサー率56% (84/148)
回答No.7

>alert(''); >だと、NNでも動くんです・・・。 あ、了解です。 Mac+IEのほうも大丈夫なんですね? <SCRIPT language="JavaScript" src="./JSファイル名.js"></SCRIPT> と記述してみたらどうでしょうか?

mdk
質問者

補足

<SCRIPT language="JavaScript" src="./JSファイル名.js"></SCRIPT> にしてみても、やはりNNでは動きません・・・。

  • dayowl
  • ベストアンサー率56% (84/148)
回答No.6

#2です。 <a href="#" onClick="alert('');"></a> <a href="javascript:alert('');"></a> これらが動かないということは、javascript自体が動かないということのようですね。 こちらを参照して、もう一度「ActiveXコントロールとプラグインの実行」が有効になっているか確認してみてください。 https://solutions.shimadzu.co.jp/glc/caution/seigen/seigen.html ときどき「Javaアプレットのスクリプト」の有効・無効と勘違いしているときがあるので。。。

mdk
質問者

補足

あ、すみません、わかりにくい書き方をしてしまいました。 alert(); だと、Windows + IEでしか動かなくて、 alert(''); だと、NNでも動くんです・・・。

  • Dpop
  • ベストアンサー率51% (279/544)
回答No.5

#1 です。 <base href="..."> が利用されている。と言うことは無いですよね? または、フレームとか。 ベースがずれていて、.js の読み込み位置がずれているのでは無いかな? と疑っています。 絶対パスで指定するとどうなるでしょうか?

mdk
質問者

補足

<base href="...">も、フレームも、使用していません。 IEでは動くので、.js の読み込み位置がずれているということはないと思っているのですが、勘違い??

  • Dpop
  • ベストアンサー率51% (279/544)
回答No.4

#1 です。 <script type="text/javascript" src="test.js"> </script> の様な記述方法ではどうですか?

mdk
質問者

補足

それも試してみたのですが、だめだったんです・・・。

  • dayowl
  • ベストアンサー率56% (84/148)
回答No.3

No.2です。 すいません途中で回答ボタンを押してしまいました もしかしたら、外部Javascriptの方でブラウザ判定していて、何も反応しない状態が正しいのかも? と思ってしまいました。 もし可能なら外部Javascriptも見せてもらえませんか?

mdk
質問者

お礼

スクリプトをお見せしようと準備している間に、 不具合箇所が特定できました! 補足で記入した、中略したスクリプトを読み込んでやってみても同じく無反応だったのですが、 一番上の test 関数だけ残した状態のスクリプトだと、きちんと動作しました。 ということは、それ以下のスクリプトのどこかが邪魔をしているということ(ですよね?)なので、 1行ずつ削除しては実行してみると、 var bdate=document.order_form.生年月日(日).value; の行を削除した時点できちんと動作しました。 つまりこの行がおかしいということだと思うのですが、 いったいどうおかしいのかが、まだわかりません。。。

mdk
質問者

補足

かなり長いので中略せざるを得ないのですが、以下のようなスクリプトです。 一番上の test 関数を呼び出そうとしても動きません。 ★ここから★ function test(){ alert(''); } //************************************************** //注文フォームの入力データをチェックする関数 function checkData(path){ //入力された値 var email=document.order_form.email.value; //メールアドレス var email_confirm=document.order_form.email_confirm.value; //メールアドレス確認入力 var goods=document.order_form.お申し込み商品.value; var phone=document.order_form.電話番号.value; var name_kana=document.order_form.フリガナ.value; var name=document.order_form.お名前.value; var pcode=document.order_form.郵便番号.value; var pref=document.order_form.都道府県.value; var address=document.order_form.ご住所.value; var byear=document.order_form.生年月日(年).value; var bmonth=document.order_form.生年月日(月).value; var bdate=document.order_form.生年月日(日).value; var now_year=document.order_form.now_year.value; var now_month=document.order_form.now_month.value; var now_date=document.order_form.now_date.value; if(document.order_form.性別[0].checked==true){ var sex=document.order_form.性別[0].value; }else if(document.order_form.性別[1].checked==true){ var sex=document.order_form.性別[1].value; }else{ sex=""; } ★中略★ document.order_form.submit(); } ★ここまで★