mac版ネスケだけで起こる_parentの困った機能

[上に] [前に] [次に]
たけたけ [E-Mail] 2000/04/03(月) 06:07:01
どうか、どん底から救ってやってください(T〜T)

フレームを利用してホームページを構築しています。
上、左、右のよくある3分けで、
それぞれ、ナビゲーター、目次、メインフレームという名前にしました。

この場合、1つのhtmlに、framesetを2重ループで記述し、
1度で定義してしまう方法がポピュラーなんですが、
私の場合、その方法を使うことが許されない環境下なので、仕方なく
frameset1.html,frameset2.htmlの2度に分けて、
set1 で ナビゲーターフレームと、それ以外、
set2 で、目次、メインフレームを設定しております。

さて、問題なのは、メインフレーム内のhtml(ソース)で
TARGET="_parent"を実行すると、
macのネスケのみ、すべてのフレームが解除されてしまうことなのです。
(丁度、TARGET="_top"を使った状態と同じになります)
もちろん、winのネスケや、他のブラウザでは、
frameset2.htmlのみを解除した状態で済み、それが健全な状態だと(^^;)思うのですが...

この現象を解消するのはどうすればいいのでしょう?
もしくは、私が使っているver.4.7特有の仕様なのでしょうか?
完全徹夜で苦しんだ私に、どうか御指導くださいませ...

Phine 2000/04/03(月) 06:34:05
たぶんバグだと思います。
解決方法としてとりあえず1つ思いついたのは、
それぞれのページでJavaScriptを使ってフレームがセットされてなければセットしなおす
です。なんか綺麗なやり方じゃないですけど。

2000/04/03(月) 06:44:17
Mac持ってないのでテストも出来ませんが,もっと素直に

top.frames['表示したいフレーム'].location.href = "表示したいファイル";

ってするのが普通ですね.
何個かめのネストの途中に割られてるフレームに表示したい場合はparent.parent等としてその階層分親フレームを参照し,指定すれば良いはず
#あんまやら無いので確かではないですが.

>ナビゲーター、目次、メインフレームという名前にしました
日本語でフレームに名前つけてるんですか?
実害があるかどうかは知りませんが,半角の英数字で付ける方が歩なんですよ.
#もしかしたらそれが原因かも

結局テストできないのでバグかもしれませんが,javascriptの方法とフレームの名前のつけ方,両方試して見る価値はあると思います.

たけたけ [E-Mail] 2000/04/03(月) 15:48:31
Phineさん、ご指導ありがとうございます。
猫さん、おっしゃる手法を具体的に使用しているサイトはないでしょうか。
私の乏しい知識ではちょっと理解できません(^^;)。
JAVAスクリプト・・・なんですよね?

>日本語でフレームに名前つけてるんですか?

書き方がおかしかったです。すいません。
ちゃんとアルファベットでつけてます。

┏━━━━━━━━━━━━━┓
┃navigater                 ┃
┗━━━━━━━━━━━━━┛
┏━━━━━━┓┏━━━━━┓
┃menu        ┃┃main      ┃
┃            ┃┃          ┃
┗━━━━━━┛┗━━━━━┛

・・・という構成で、
frameset2.htmlで設定しているmain.htmlのソースの中で
TARGET="_parent"を使用すると、普通は下のように

┏━━━━━━━━━━━━━┓
┃navigater                 ┃
┗━━━━━━━━━━━━━┛

ナビゲーターのみ残るというのに
macネスケ(4.7のみ??)では、すべて解除されるのです。

うー、勉強の足りなさに反省しております。

Phine 2000/04/03(月) 21:38:29
猫さんの方法は、たとえば main フレームの
<A HREF="abc.html" TARGET="_PARENT">
を、
<A HREF="JavaScript: parent.location='abc.html'">
に変える、ということだと思います。

2000/04/03(月) 23:38:41
めちゃめちゃ具体的に書いたのですが・・・.
2重ループ(ループってなんだ?)で初めに指定した下のフレームを指定すればいいんじゃないの?って事です.

javascript使わずにTARGET=""で初めに分けた下のフレームの名前を指定しても同じ事.

要するに初めにframe1.htmlで分解したナビゲーターフレームと”それ以外”のそれ以外をターゲットで指定すればと言う事.
JavaScriptでやりたかったら親子関係を考えろと.

#全然的外れな事を言ってるのかなぁ・・・

ばびん 2000/04/04(火) 01:00:23
Mac版Netscapeは、
target=parent はダメダメですが
parent.location.href はちゃんと動きます。
ちなみに私の環境は
MacOS8.6 + Netscape4.7 です。

たけたけ [E-Mail] 2000/04/04(火) 05:04:05
[[解決]]
ああ〜!うまくいきましたぁ!
使った方法は猫さんのおっしゃった
”それ以外をターゲットで指定すれば”
という手法です。ありがとうございました!

primeさんが2度目に書いてくださったようにも
書き換えてみたのですが、
こちらはポインタが砂時計に変わったきりで、
何も反応してくれませんでした。
単純に書き換えただけでは、ダメなんでしょうかね。

ばびんさんも御意見ありがとうございました。

ありゃ、もうすぐ夜明けです(^^;)。

[上に] [前に] [次に]