あるサイトで紹介されていたjavascriptをコピーして使ってみたんですが、Win(XP,IE6)ではエラーが出ませんが、Mac(OS9,IE5)ではエラーが出ます。


JavascriptでMacとWinの動作の違いについて詳しく教えてくれるページはありませんか? なければ下記のJavascriptでエラーが出る原因を教えてください。

コピペしたのは以下の文章です。(日本語部分はきちんと指定してあります)

<SCRIPT language=”JavaScript”>
<!--
if((parent.location.href.indexOf(’フォルダ名’)) < 0){
top.location.href=’アドレス’;
}
// -->
</SCRIPT>

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/11/15 10:41:59
  • 終了:--

回答(6件)

id:Yuny No.1

ねがい かなみ回答回数953ベストアンサー獲得回数132004/11/15 12:24:44

ポイント13pt

http://www.keynavi.net/ja/tipsj/gokan.html

「JavaScript@Keynavi.Net」 ブラウザ互換性問題について

JavaScriptの各OSやブラウザへの対応について、参考になりそうなところを上げておきました。

それと、3つ目のURLなんですが、これはPhotoShopをJavaScriptをつかって制御する方法ですが、2004年08月14日の記事でフォルダ指定のパスの書き方がWindowsとMacintoshで違う、ということに触れています。

もしかしたら、その辺に原因がありそうに思います。

そこで、4つ目のURLのように、ブラウザやOSのバージョンによって分岐をかけるとかすればいいのではないか、と推測します。

あくまでも推測のレベルで申し訳ありません。

何かヒントがあれば幸いです。

http://blog.livedoor.jp/openspc2/archives/cat_90340.html

OpenSpace Info:Photoshop - livedoor Blog(ブログ)

id:nekogo

ありがとうございます。

分岐をかけたとしても、元のエラーの原因が分からないと・・・・・

フォルダ名は、親ウィンドウのフォルダ名に含まれる単語だけが入っています。ですからパスの書き方ではないようにも思うのですが・・・・・・

引き続きよろしくお願いします。

2004/11/15 13:24:47
id:tacosa No.2

tacosa回答回数4ベストアンサー獲得回数02004/11/15 18:16:24

ポイント15pt

http://www.sumnet.ne.jp/domp/jsbs/

JavaScript basic samples

JavaScriptは万能では無く、ブラウザに依存します。

一見すると、2番目のURLからコピーしたと思うのですが、

このページと同様な事をしたいのであれば、

ディレクトリとURLの記述に問題があるのではないでしょうか。

例)ディレクトリの記述

フォルダ名

フォルダ名/

例)URLの記述

あなたのHP

あなたのHP/

あなたのHP/index.htm

あなたのHP/index.html

このようにいくつか試してみてください。

それでも駄目な場合はScript自体を別の物に

した方が早いかも。

http://www5e.biglobe.ne.jp/~access_r/hp/javascript/js_061.html

他サイトにフレームリンクされないようにする方法(1) - JavaScript

id:nekogo

ありがとうございます。

やっぱり記述ですか・・・・・・。

色々変えてみたんですが、やっぱりダメでした。

試しにそれぞれの処理をテストしてみました。

top.location.href=’アドレス’ 単体だと動き、

if((parent.location.href.indexOf(’フォルダ名’)) < 0) 

ではエラーが出るところまでは分かりました・・・・・。

2004/11/15 18:50:44
id:Im_Me No.3

Im_Me回答回数301ベストアンサー獲得回数62004/11/15 18:34:29

ポイント13pt

http://www.openspc2.org/JavaScript/index.html

一撃必殺JavaScript日本語リファレンス

MACの場合全角空白が入るとエラーになるそうです。

(URLの「エラー&トラブル一覧」やリファレンスが参考になるかも…)

id:nekogo

ありがとうございます。

空白等はチェックしてるんですが・・・・・・。

2004/11/15 19:15:48
id:upride No.4

upride回答回数220ベストアンサー獲得回数12004/11/15 18:51:35

ポイント20pt

通常indexOfは引数を2つ持ちます

一致しない場合-1を返します

if((parent.location.href.indexOf(’フォルダ名’,0)) < 0){

このようにしてはどうでしょうか?

id:nekogo

ありがとうございます。

やってみたんですが、ダメでした・・・・・。

self.location.hrefだとうまく動くんですが、parent.location.hrefだとダメみたいで・・・・・・(Θ_Θ;) あきらめるしかないのかな・・・・・。

2004/11/15 20:02:04
id:upride No.5

upride回答回数220ベストアンサー獲得回数12004/11/19 01:30:22

ポイント20pt

parent.locationを一回変数にいれて

indexOfで比較するのはどうでしょうか

もしくはfindで。

href付けるとダメなような気が(あくまで気です)

id:nekogo

ありがとうございます。

確かにhrefを入れるとダメなようです。

ただ変数に入れる時にhrefがひっかかってしまいます。かといってhrefを外したら、アドレスがチェックできないようです。

2004/11/22 13:13:26
id:amanoftaste No.6

amanoftaste回答回数42ベストアンサー獲得回数02004/11/21 23:03:24

ポイント20pt

「location.href」を「URL」に変えてみては。

「href」を使わなくて済む気がしますが、どうでしょう?

id:nekogo

ありがとうございます。

URLでもダメでした・・・・・・。

Macではやっぱり難しいのでしょうか・・・・。

2004/11/22 13:14:05
  • id:upride
    解決してないようなので・・

    これで試してみて下さい
    URL取得にhref使わないパターン

    <html><head>
    <script language=”javascript”>
    <!--
    var hoge;
    var ret;
    hoge = parent.frames[0].location;
    hoge = hoge.toString(); //文字列へ変換
    if( hoge.indexOf(”google” , 1 ) < 0 ){
    alert(”一致しないのでGoogleにGo”);
    top.location.href=”http://google.co.jp”;
    }
    // -->
    </script>
    </head>
    <body>
    Gooleに飛べば成功
    </body>
    </html>

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません