重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

外部.js ファイルに記述した関数の呼び出しが、
Windows + IE6
だとできるのですが、
Windows + NN7
Mac + IE5
だとできません。
エラーメッセージすら出ず、無反応の状態です。
もちろん、ブラウザの設定ではJavascriptはONです。

呼び出し方は
<a href="javascript:関数名('引数');"></a>
<a href="#" onClick="関数名('引数');"></a>
の両方を試しましたが、
どちらも Windows + IE でしか動きません。

どうすれば正常に動くようにできるでしょうか?
とても困っています。
どなたかよろしくお願いいたします!

A 回答 (13件中1~10件)

奇妙な現象ですね。

。。
一度ブラウザのキャッシュを削除してみてください。
IEなら、
「ツール」→「インターネットオプション」→「ファイルの削除」で
    • good
    • 0
この回答へのお礼

できました!!!!
どんな関数名をつけてもOKです!
Mac版IEって、単にリロードしただけじゃだめなんですね。
知りませんでした。

いろいろとヒントを与えてくださり、ありがとうございました。

お礼日時:2004/06/04 13:33

サーバーにはFTPでアップロードましたか?


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

もう一息ですね。がんばってください

この回答への補足

普段は、テキストかバイナリかは自動判別にしているので、
バイナリに指定してやってみましたが、変わりませんでした。

パーミッション、最初は644になってました。
念のため、755に変えてみましたが、やっぱり動きません。



奇妙なことを発見。

alert(''); だけを記述した関数を呼び出そうとしているのですが、
その関数名を test にすると、ちゃんと動きます。
check、checkData、data、dataCheck などの関数名をつけると、
ローカルでは動くのにアップしたとたん動かなくなるんです・・・。

補足日時:2004/06/04 12:09
    • good
    • 0

あとは2バイト文字をやめたほうがいいかもしれないです。


var goods=document.order_form.お申し込み商品.value;

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

この回答への補足

2バイト文字をやめたところ、動きました!

なのにここでまた問題が・・・。
ローカルでは動いたのに、
サーバにアップしたとたん、また動かない・・・。

補足日時:2004/06/04 11:17
    • good
    • 0

お~よかったですね~


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

この回答への補足

はい!徐々にですが良くなってきました。

> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
> の一行が入っていて
> 外部Javascript側もShift_JISで保存してみたらどうでしょうか?

確認したところ、すでにそうなっていました。

Mac使いの友人が、
Macではあまりアンダースコアを使わない、
というようなことを言っていたのを思い出し、
また別の文字に置き換え作戦を今試しているところです・・・。

補足日時:2004/06/04 09:52
    • good
    • 0

だいぶ近づいてきたみたいでよかったですね。


var bdate=document.order_form.生年月日(日).value;
これの2バイトでもカッコを使うのをやめて
生年月日_日とかに変えたらどうでしょう
なんか()記号が怪しい気がしますが・・・
    • good
    • 0
この回答へのお礼

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

がっ!Mac + IE では依然として動きません・・・。

お礼日時:2004/06/03 18:26

#1 です。



> IEでは動くので、.js の読み込み位置がずれているということはないと思っているのですが、勘違い??

いえ。Windows版のIE6ではそう言う問題は無いと思いますが、Mac IE5 はbaseに問題がでる場合がある。と聴いた事があるので、確認してみました。(NN7の説明が付かないな。。。 と投稿してから思いましたが。)

もっと単純な、例えば document.writeln だけを含んだ関数、だけを含んだ .js を作って、各環境で動作するか確認して頂けますか。

今は、JavaScript の関数自体に問題があるのでは無いかな。と考え始めています。(やはり、base 絡みで。)

この回答への補足

超シンプルに、次のようにしてみました。

【ファイル名】
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行だけを削除してみても
やっぱり動かないので、どの行が悪いのかもわからなくなってしまい、
振り出しに戻ってしまいました(泣)。

全スクリプトを見ていただきたいところなんですが、
文字数制限にひっかかってしまってできないんです。

もうちょっとねばって検証してみます。。。

補足日時:2004/06/03 17:48
    • good
    • 0

>alert('');


>だと、NNでも動くんです・・・。

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

この回答への補足

<SCRIPT language="JavaScript" src="./JSファイル名.js"></SCRIPT>

にしてみても、やはりNNでは動きません・・・。

補足日時:2004/06/03 17:30
    • good
    • 0

#2です。



<a href="#" onClick="alert('');"></a>
<a href="javascript:alert('');"></a>
これらが動かないということは、javascript自体が動かないということのようですね。

こちらを参照して、もう一度「ActiveXコントロールとプラグインの実行」が有効になっているか確認してみてください。
https://solutions.shimadzu.co.jp/glc/caution/sei …
ときどき「Javaアプレットのスクリプト」の有効・無効と勘違いしているときがあるので。。。

この回答への補足

あ、すみません、わかりにくい書き方をしてしまいました。

alert();
だと、Windows + IEでしか動かなくて、

alert('');
だと、NNでも動くんです・・・。

補足日時:2004/06/03 16:41
    • good
    • 0

#1 です。



<base href="...">

が利用されている。と言うことは無いですよね?
または、フレームとか。
ベースがずれていて、.js の読み込み位置がずれているのでは無いかな? と疑っています。

絶対パスで指定するとどうなるでしょうか?

この回答への補足

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

補足日時:2004/06/03 16:42
    • good
    • 0

#1 です。



<script type="text/javascript" src="test.js">
</script>

の様な記述方法ではどうですか?

この回答への補足

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

補足日時:2004/06/03 16:22
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!