アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは,よろしくお願いします。
何が何だか分からなくて困っています。
IEでは問題なく動くのに,Firefoxだと関数が定義されていないとのエラーが出ます。「<関数名> is not defined 」

スクリプトは,外部ファイル化してあります。キータイプの間違いもありません。何度も確認しました。

function aaa(){
 (スクリプト)
}

<body onload="aaa()">
のようにして呼び出しています。
いったい,何が悪いのでしょうか?

また,Operaだと,「リンク先のスクリプトを読み込むことができません」とのエラーが出ます。
元になるPHPファイルでは,
<script type="text/javascript" language="javascript" src="../javascript/AAAAA.js"></script>
のようにして呼び出しています。
もちろん,ファイルネームのタイプミスはありません。

ちなみに,スクリプトの内容は,日付関連のコードを記述しています。
試行錯誤している時に,他の日付関連のコードを実行したときに,
dayoption is not defined
というエラーが出たことがあります。
関数が存在しているのに,定義されていないと出るのは,もしかすると,日付関連の関数等の使い間違いではないかとも考えています。
使っているものは,Date()とgetYear()です。これらのうちのどちらかがFirefoxやOperaだとサポートされていないのでしょうか?

どうか御指導ください。よろしくお願いします。

A 回答 (4件)

たぶんなんらかの凡ミスでしょうけど・・・・


firefoxでだめなら、firefoxのアドオンのfirebugで検証するのが一番です

この回答への補足

早速のお答えありがとうございました。
早速,firebugをインストールしました。
そうしたところ,
<script type="text/javascript" language="javascript" src="../javascript/AAAAA.js"></script>
で指定したAAAAA.jsを開くことができていないことが分かりました。
この 「src=」 以下にある相対参照の記述が原因のようです。
IEだとこの記述でうまくリンクして,firefoxやOperaだとリンクできないようです。
もっと,具体的に言うと,../の部分が機能せず,親ディレクトリを呼べないでいる状況のようです。
この記述をどのように訂正,すれば良いのでしょうか?よろしければ御指導ください。

補足日時:2008/12/08 02:53
    • good
    • 2

・yyr446 さんの内容についてちょっと補足。


1. >charset="utf-8"
日本語コードの種類がそうとは限りませんし、
これは特に書く必要はありません。

2.>language=
これでも動作しますが、language=を使うことは推奨されていません。
出来ればtype=を使いましょう。


・ところで alert()を使う場合について説明を省略してましたが、
window.alert("Test");
のように、引数などを省略しないで記述しましょう。
(Firefoxでは引数の省略は許されないみたい。)

この回答への補足

zeeegさん,ありがとうございます。
いろいろとやってみたら,<script>要素のsrc属性の修正でJavascriptが走るようになりました。
具体的に言うと,
src="../javascript/AAAAA.js"
とあったのを
src="../../javascript/AAAAA.js"
としたら,プログラムが正常に走りました。
IEの方も矛盾なく動いています。
こんなことってあるのでしょうか?なぜこんなことが起こるのでしょうか?

補足日時:2008/12/09 01:27
    • good
    • 0

まさか、と思いますが、もしかして


Webサーバー側が、.htaccessでブラウザーのユーザーエージェント
の値を見て、javascriptディレクトリーへのアクセスをIEのみに制限
している可能性(IEでしか使えないjavascriptのため)はありませんか?

<script>の書き方は、普通
<script type="text/javascript" charset="utf-8" src="../javascript/AAAAA.js"></script>
か、
<script language="javascript" src="../javascript/AAAAA.js"></script>
のどっちかが多いですが、2つ書いても動作するはず。

SRCのパスの書き方は、IEでうまくいっているなら、FireFoxで
だめというのはありえないです。
    • good
    • 0
この回答へのお礼

yyr446さん,ありがとうございます。
>IEでしか使えないjavascript
このようなことはないようです。alert()だけの簡単なものは,エラーが出ませんので・・・。

>SRCのパスの書き方は、IEでうまくいっているなら、FireFoxで
>だめというのはありえないです。
ですよね,でもこれを試しに直したらうまくいきました。いったいどういうことなのでしょうか?よけいな疑問がまた増えてしまいました。

お礼日時:2008/12/09 01:27

凡ミスでしょうね。


質問で例示している function みたいに全角の空白文字が入っているとか
前後のscript宣言が間違ってるとか...あてずっぽうですが。

>関数が存在しているのに,定義されていないと出るのは,
>もしかすると,日付関連の関数等の使い間違いではないかとも考えています。
関数が正しく呼ばれていないのか、関数の中身の問題なのかどうかは、
関数の中身を消してalert()文などと置き換えてみたら一発で分かります。

この回答への補足

お答ありがとうございます。
No.1にも書きましたが,Zeeegさんがおっしゃるとおり,script宣言が間違っているようです。
src属性のリンクの入力の仕方,相対参照の正しい記述の仕方,絶対参照の記述の仕方などを,御教授願えればと思います。よろしくお願いします。

補足日時:2008/12/08 03:06
    • good
    • 2

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