人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

フレーム分割したhtmlページの、子フレームに直接リンクしたときに、子フレームのみ表示されるのを防ぐテクニックがあったと思います
(リンクは子フレームに貼られたが、表示は親フレームも含めてされる)。その方法を教えてください。
依然どこかで読んだのですがど忘れしてしまいました。たしかJacaScriptでif (top==self) {top.location.href...とか書いたような。。。

●質問者: smileless
●カテゴリ:ウェブ制作
✍キーワード:href HTML TOP フレーム リンク
○ 状態 :終了
└ 回答数 : 7/7件

▽最新の回答へ

1 ● satobo_77
●6ポイント

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

フレーム内のリンクをリンクされない方法 - JavaScript

ここにのっていたかと思います。

◎質問者からの返答

ありがとうございます。

でもこの方法だとフレームのトップページに行ってしまいますよね?

目的のページをフレームつきで表示させたいのです。


2 ● aki73ix
●6ポイント

これを子フレームに埋め込んでおけば、直接開かれたときに親フレームの parent.htmを開きます

<SCRIPT LANGUAGE="JavaScript">

<!--

if(parent == self )location.href="parent.htm";

//-->

</SCRIPT>

いかがでしょうか?

◎質問者からの返答

ありがとうございます。

これだとやはり、目的のページが表示されずにトップページが表示されます。

フレームの設定ページが

index.html

だとして、

フレームを上下に分けているとします。

上の部分にはいつもheader.htmlが表示されます。

index.htmlを実行すると、

フレームの上にはheader.html、下には1.htmlが表示されます。

下には、1.htmlのほかに、2.html,3.html,4.htmlが表示されます。

例えば、3.htmlを実行したとき、単体で3.htmlが表示されますが、これをフレームつきで表示させたいのです。


3 ● miyamiya3
●6ポイント

あらかじめ、

<frameset>

<frame src=”xxx.html” name=”親フレーム名” ....>

<frame src=”yyy.html” name=”子フレーム名” ....>

...

</frameset>

と、フレーム分けをする時に直接リンクされたくないページが収まる

フレームに名前を付けておきます(半角英数文字)。

その上で、リンクされたくないページのHTML上に、以下の記述を行います。

<script language=”JavaScript”>

<!--

if(self.name != ’子フレーム名’){

location.replace(’飛ばす先のURL(トップページなど)’);

}

// -->

</script>

記述する場所は上の方でも下の方でも構いません。

( <BODY>〜</BODY>の間)

◎質問者からの返答

ありがとうございます。

これもおなじでしょうか。

飛ばす先のURLで、親フレーム付で子フレームを指定できませんでしょうか。上の私のコメントで言うと、3.htmlにするように。

もしくはリンクの指定に

ページ名

としますが、このURLの欄に、3.htmlを親フレームつきで指定できないでしょうか。


4 ● f-nakajima
●6ポイント

配列を使っているので、URLにファイル名が出てしまいますが、私がSEO対策で使っているものです。

フレームのページに以下

<script language=”JavaScript”>

<!--

function SetMainPage() {

var strGetVars = location.search.split(”=”);

if(strGetVars[0] == ”?page”) {

top.main.location.href = strGetVars[1];

}

}

//-->

</script>

フレーム内に表示されるページに以下

<script language=”JavaScript” type=”text/jscript”>

if (parent.frames.length==0)

top.location=’index.html?page=hogehoge.html’;

</script>

◎質問者からの返答

ありがとうございます。

hogehoge.htmlを3.htmlにすればよいんですよね?

なぜかうまく動きませんでした。


5 ● virus
●6ポイント

http://tohoho.wakusei.ne.jp/js/location.htm

そのファイルは現在ありません

top.location.href = は全体ですが、たとえばフレーム内のそのページが kodomo1 と言う名前を付けてたとすると

top.kodomo1.location.href =

でいけると思いますが?


1-5件表示/7件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ