function jump1(id) {
if (navigator.appName == "Netscape"){
if (navigator.appVersion.indexOf("Mac") != -1)
location = "index0.html";
else if (navigator.appVersion.indexOf("Win") != -1){
if (parseInt(navigator.appVersion) >= 5)
location = "index.html";
else location = "index1.html";
}
else location = "index0.html";
}
else if (navigator.appName == "Microsoft Internet Explorer"){
if ((navigator.appVersion.indexOf("Mac") != -1))
location = "index1.html";
else if (navigator.appVersion.indexOf("Win") != -1)
location = "index.html";
else location = "index1.html";
}
else location = "index0.html";
}
呼出方 <A HREF="javascript:jump1('file1')"
(呼出側にtarget="_top"をつけると、ローカル環境では動きますが、アップロード後は動きません)
フレーム処理をしている中で、target="_top"のように全体を切り替えるにはどうしたら良いのでしょうか?
単体ファイル内であれば動きます。しかし、フレーム内のファイルから処理をさせようとするとエラーになってしまいます。
どうぞよろしくお願い致します。
まだまだ?、もう?「ふたばマーク」です。
parent.framename.location.href = "****.html";
top.window.location.href = "****.html";
上記の2行が参考になれば幸いです。
ふたばマークさん、ありがとうございました。
top.window.location = "****.html";
にする事で無事動きました。(動いた時は感無量)
ご助力に感謝致します m(_ _)m
今後の参考にもう一つ教えて頂けませんでしょうか。
「.href」を省略しても今回動きましたが、これは付け
た方が良いものなのでしょうか?
ふたばマークなので・・・・?
以前、javascriptの参考書で読んだ記憶によると
locationにurlを指定して動かない場合、location.hrefとすれば
解決するようなことが書かれていたような?
ふたばマークも2つに付けないといけない状態なので
正確なことは返答出来ません。申し訳ない。
ふたばマークさん、お答えありがとうございました。
自身の知識レベルが低いので、また初歩的な事をお聞き
するかもしれませんが、その節はよろしくお願い致しま
す。
ここは良いサイトですね。自分もここでみっちり勉強さ
せて頂くつもりです。(目指せ初心者マーク)
上記スクリプトを使用していたところ、WindowsのIE及びネットスケープ,Firefoxでは動作するのですが、MacのIEでは動作しないと判りました。(Macのネットスケープ,Safariは正常に動くようです)
自分なりに調べて試しましたが、上手く分岐出来ずにいます。MacIEを分岐するには、どのようにしたら良いのか教えて下さい。
−分岐目的−
Macは全て「index0.html」へ
WinIE4以上、NN7、Firefoxは「index.html」へ
WinIE4以下、NN4.0x以下は「index1.html」へ
上記に当てはまらないOSは「index0.html」へ
よろしくお願い致します。
ブラウザのユーザーエージェントを取得するプロパティ
navigator.userAgent
というのがあります。
Mac+IEなら
Mozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC)
WinXP+Operaなら
Opera/8.0 (Windows NT 5.1; U; ja)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.53 [ja]
といった感じで取得できますので、Macという文字が含まれているか否かを調べるのがよろしいでしょう。
私はMacは持っていませんが、多分動作すると思います…
CGIで使用される環境変数HTTP_USER_AGENTと同じものなので、どのような値が取得されるか、そちらの方からも調べる事ができます。
元帥さん、お答えをありがとうございます。
function jump1(id) {
if (navigator.appName == "Netscape"){
if (navigator.userAgent.indexOf("Mac") != -1)
top.window.location.href = "index0.html";
else if (navigator.userAgent.indexOf("Win") != -1){
if (parseInt(navigator.appVersion) >= 5)
top.window.location.href = "index.html";
else top.window.location.href = "index1.html";
}
else top.window.location.href = "index0.html";
}
(IE部分も同じ)
と変えてみました。ローカル環境では動いていますが、Macは
手元に無いので解かりません。
連絡を下さった方は現在諸事情で見る事が出来ない状態にあり、
分岐されているかどうかは不明となっています。
質問に次ぐ質問で申し訳ありませんが、このスクリプトを複数回呼ばれた場合に同じコードを再実行しないようにするにはどうしたらいいのでしょうか?
自分なりに調べたのですが、初心者では理解が難しく上手く動作
させる事が出来ません。「function jump1(id) { 」以下に
if(??????) return;
??????=1;
を入れたら…と思うのですが、どのように書けば正常に動くのか
を教えて下さい。
皆様のご協力にとても感謝しております。どうぞよろしくお願い致します。
古籏 一浩 著 「速効!図解プログラミング JavaScript」
で解説されている内容が参考になれば幸いです。
http://www.openspc2.org/zukai/Chapter21/index.html
訂正
「古籏 一浩 著」を改め「古籏 一浩 氏 著」
「速効!図解プログラミング JavaScript」に未収録分として 「ブラウザ別に違うページを表示する(中級編)」
http://www.openspc2.org/zukai/Chapter21/index.html
調べていて間がかなり空いてしまいました。
返事が遅くなってすみません。
ふたばマークさん、ありがとうございました。
ようやく動くようになりました。