わかりにくいタイトルでごめんなさい。
http://www.~.jp/index.htm
でアクセスできるトップページは左右の2つのフレームに別れていて、右側にコンテンツ、左側が各コンテンツへのリンク(画像)を表示しているとします。
そこでコンテンツAをクリックしたときには、右側にトップページと同じディレクトリにあるa.htmを表示します(状態A)。これは、targetでフレームを指定しています。
さて、index.htmのURLをご案内して見に来てもらう時は問題ないのですが、a.htmのURLをご案内して来てもらったときは、左側のリンクバーが表示されません。そのときでも、状態Aの様に表示するにはどうしたらいいでしょうか。
全てのページをフレームページにして、リンクバーをロードさせれば実現出来そうですが、あまりスマートには思えなくて...
No.3ベストアンサー
- 回答日時:
非常に簡単でかつスマートにできる。
(1)それぞれの単体のページのジャバスクリプトとして以下の趣旨の記述を書く。(それぞれのページに具体的に記述するのではなく、共通の読み込みJavaScriptにすれば良い)
(論理だけ述べる。
ジャバスクリプトは書かない。自分で調べること)
(1).まず、親フレームが存在し、それが本当に自分のHPの親フレームかとうかの一致確認処理。
(レフトフレームの「フレーム名」から判定するのが良い)
(2).一致していれば、何もしない(それは左のリンクバーから来たとほぼ間違いなく推察される)
(3).一致していなければ、「そのファイルの名前を引数として」トップページを呼び出す。
location.search.substring()などで引数を受け取れる。
ヒントはhttp://oshiete1.goo.ne.jp/kotaeru.php3?q=18407 書籍などにものっている機能。
(4).トップページのジャバスクリプトは、
2つに分ける。
JavaScriptでフレーム分けを吐き出す。
JavaScript内で、引数があるばあいと、ない場合とで、document.writeの内容を変えれば良い。
※javaScriptを切っていた場合のデフォルト(今のフレーム分けと同じもの)は用意しておくことをお薦めする。
詳細にご教示くださり、有難うございます。
正直言ってJavascriptはまだまだ勉強不足なのですが、引数を使えばうまくいくということがわかりました。
がんばってみます。
No.4
- 回答日時:
私はこんな風にやってます。
まず、JavaScriptでこんなのを書きます。
---
if (window.name != "framename" ) {
document.location.href = "frameset.html";
}
---
各ページに
<script>
</script>
で囲んで書いても良いですし、別ファイル(check.jsとしてファイル保存)にして
<script src="check.js"></script>
なんてこともできます。私は後者のをつかってます。
で、framename には、本来このコンテンツを表示すべきフレームの名前を入れます。targetで指定する名前です。
frameset.htmlはフレームセットを定義しているソースに置き換えます。
動きとしては、自分の表示されているウィンドウ名がframenameでは無い場合frameset.htmlを表示する。という感じです。
コードで例を示していただき、有難うございます。
Javascriptの知識が足りないので、大変勉強になりました。この方法と他の方が教えてくださった方法を組み合わせれば、何とかできそうな気がします。
No.2
- 回答日時:
要するに、すべてのページを単ページで表示するのではなくフレームをつけるということでしょうか?
Javaスクリプトを使用して「単ページ」のみでは表示できないようにすることは可能です!
しかし、これは単ページのみでアクセスした場合は
TOPページを表示することになります!
質問の趣旨とは少し違うのですがどーですか?
スクリプト文
----------------------------------------
<script language="javascript">
<!--//
if (top == self) self.location.href="TOPページ";
//-->
</script>
----------------------------------------
※TOPページの所には例:index.htmlとかが入ります
有難うございました。
今回の目的とは微妙に違った方法だと思いますが、他のところで利用シーンがありそうです。大変参考になりました。
No.1
- 回答日時:
直リンクでフレーム対応させたいということですよね?自分はプログラムの知識はないので、何かのプログラムを組み込めば出来るのかも知れませんが、それは分かりません。
以下にはひとつの案として回答いたします。これを実行するにはそれなりのディスクスペースが必要ですので、あらかじめご了承下さい。
まず、すでにあるデータとは別に、直リンクしたいページも、新たにフレーム構造にします。もちろん名前も違うものを使ってください。a.htmlだったらaa.htmlというカンジです。メニューページもすでにあるものとは別の名前で新規に作成して下さい。とは言ってもデータはすでにあるもののコピーでOKです。そして直リンクページ以外のものは、すべてターゲットで指定します。本来トップページとなるはずのtop.htmlもターゲットにします。こうすると、あたかもフレーム構造で動くように見えます。ただし見かけのURL欄はa.htmlのままですが。。。
これで分かりますか?つまり直リンクしたいページの分だけ余計にフレームページとしてのデータが必要になるわけです。その他のページは共有できますが、もともとのページの戻りターゲットも_selfにしておく必要があります。
皆様、お礼が遅れてすみません。
フレームをたくさん作るのは避けたかったので、今回はこの方法は取れませんでした。でも、大変参考になりました。有難うございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(IT・Webサービス) PCの画面表示 1 2022/08/05 11:06
- C言語・C++・C# 【C++】IDirect3DSurfaceのディープコピーは可能ですか? 1 2022/07/06 02:47
- Safari(サファリ) 画面のサイズ 1 2023/05/28 14:00
- ドメイン・サーバー・クラウドサービス 自作サイトをサーバーにアップロードしたのですが… 2 2022/11/08 18:12
- HTML・CSS トリミングで表示した画像をクリックで元どおりにしたい 3 2022/12/16 18:49
- その他(スマートフォン・携帯電話・VR) スマホでこの画像の4G左側にある上下の三角形の表示が絶えず点いたり消えたりしている状態は正常でしょう 2 2022/10/30 22:08
- その他(プログラミング・Web制作) ホームページビルダー16で画像を保存したら画像がトップページ上に沢山出てきてしまいます 1 2022/12/06 14:50
- Windows 10 Windows10 の設定?について (長文ですがよろしくお願いします)m(_ _)m 3 2022/05/14 12:22
- WordPress(ワードプレス) WordPressのダッシュボードに入れなくなりました。 サイトのURLの最後にwp-login.p 1 2022/11/04 18:38
- Excel(エクセル) iphonからone driveに保存してあるExcelを閲覧すると表示の仕方がちがうデータ 2 2022/12/21 13:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どのページもすべて同じURLなの...
-
HPの一部に他のHPを表示
-
フレームの表示と非表示の切り替え
-
2つのページを重ねたい
-
フレーム背景の画像を CSSで設...
-
スクロールを、縦は無し・左右...
-
pythonのエラーについての質問...
-
フレームページが表示されない...
-
HTMLファイルの置き方による読...
-
フレーム内にあるメニューから...
-
フレームの片方だけを更新(リロ...
-
フレームでリンクを新しいウィ...
-
検索結果でフレーム全体を確実...
-
HTMLからフォルダを開きたい
-
Excelで、社外秘(閲覧のみ)と...
-
googleドライブで、PDFファイル...
-
Webサイトから、txtファイルを...
-
htmlの中にexcelが埋め込むには...
-
iPadの標準ブラウザでローカルH...
-
【HTML】1クリックで複数ファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フレームの片方だけを更新(リロ...
-
pythonのエラーについての質問...
-
どのページもすべて同じURLなの...
-
2つのページを重ねたい
-
フレームが表示されない><
-
スクロールできない
-
スタイルシートで背景画像を固...
-
ブラウザで4分割表示できますか?
-
フレームページが表示されない...
-
WordファイルをHTMLに埋め込む方法
-
html 左メニューから右への表示...
-
CSSを使って画像をクリックする...
-
上下フレーム分割ページでプル...
-
URLを変えないで表示する方法
-
フレームの表示と非表示の切り替え
-
フレームあり、なしの違い
-
フレーム内に画像を表示する際...
-
違いを教えてください?
-
左フレームからのリンクを右フ...
-
インラインフレームへのリンク...
おすすめ情報