JavaScriptの質問です。

2つのサイトを2つの画面だけで行き来できるようにしたいと考えています。

例えば、メインのページのあるボタンから、サブのページにリンクして、さらにサブのページのボタンをクリックすると、メインがメインサイト内の別ページのURLに変わり、サブのページの前面に出てほしいのです。
そして、もし、サブのページをクリックする際にメインのページが閉じてしまっていた場合は、新しくメインウィンドが立ち上がる、という風にしたいのですが、可能でしょうか?

サブウィンドからメインウィンドを制御するscriptは見つけたのですが、その際にメインが前面に出ないというところと、メインが閉じてしまっていると何も起こらないというところでつまずいています・・・。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:Mug No.1

回答回数15ベストアンサー獲得回数3

ポイント20pt

http://www.hatena.ne.jp/1141991836

人力検索はてな - JavaScriptの質問です。 2つのサイトを2つの画面だけで行き来できるようにしたいと考えています。 例えば、メインのページのあるボタンから、サブのページにリンクして、..

URLはダミーです。


以下のようなことでしょうか?(同じドメイン内のみ。下記の注を参照)

------------------------------------

◆main.html

<html>

<head>

<title>メインウィンドウ</title>

<script type=”text/javascript”><!--


// サブウィンドウへの参照

var sub = (opener && !opener.closed && (opener.name == ”SUB”)) ? opener : null;


// メインウィンドウに名前をつける

if(!sub) {

self.name = ”MAIN”;

}


// サブウィンドウを(開く)手前へ

function openSub() {

if(sub && !sub.closed) {

sub.focus();

} else {

sub = window.open(”sub.html”, ”SUB”);

sub.focus();

}

}


//--></script>

</head>

<body>

<input type=”button” value=”サブを見る” onclick=”openSub();” />

</body>

</html>

------------------------------------

◆sub.html

<html>

<head>

<title>サブウィンドウ</title>

<script type=”text/javascript”><!--


// メインウィンドウへの参照

var main = (opener && !opener.closed && (opener.name == ”MAIN”)) ? opener : null;


// メインウィンドウを(開いて)遷移させ、手前へ

function openMain(url) {

if(main && !main.closed) {

main.location.replace(url); // 履歴で戻れない

// main.location.href = url; // 履歴で戻れる

} else {

main = window.open(url, ”MAIN”);

}

main.focus();

}


//--></script>

</head>

<body>

<a href=”main.html” onclick=”openMain(this.href);return false;” target=”MAIN”>メインウィンドウ遷移</a>

</body>

</html>

------------------------------------

※注:「2つのサイト」とありますが、別ドメインの場合はブラウザのセキュリティにひっかかり、JavaScriptで直接アクセスできません。

ただし、両方のサイトに任意のHTML等を置けるならばJavaScriptで実現できないこともないです。(結構大変)

id:ikuyy

2つのサイトというのは同ドメイン内にあります、仮想の2サイトになります。ということは、このスクリプトが使えるということですかね〜。さっそく試してみます!

2006/03/13 10:42:21
id:yusaku5963 No.2

回答回数19ベストアンサー獲得回数0

ポイント20pt

main1.htm メインの1ページ目

sub.htm サブ

main2.htm メインの2ページ目

main3.htm メインの3ページ目

このリンクから開けば、subのソースか見られると思います。

id:ikuyy

なるほど!ありがとうございます。

2006/03/13 10:43:47
id:arcfour No.3

回答回数3ベストアンサー獲得回数0

ポイント20pt

http://d.hatena.ne.jp/arcfour/

ゼロから始める*俺の*大学受験入門

こんな感じでどうでしょうか?

ひょっとしたら解釈ミスしてるかもしれませんが。


a1.html - メインページ


<script>

function openSubWindow() {

  window.open(”a2.html”);

}

</script>

<button onclick=”openSubWindow()”>sub</button>


------------------------------------------------------------


a2.html - サブページ


<script>

function ;changePage(url) {

  try {

    if( window.opener.document == null ) throw ”catchme”; // IE依存かも?

    window.opener.location.href = url;

    window.opener.focus() 

  } catch(e) {

    window.open(url);

  }

}

</script>

<a href=”#” onclick=”changePage(’http://2ch.net/’)”>2ch</a><br />

<a href=”#” onclick=”changePage(’http://www.hatena.ne.jp/’)”>hatena</a>

コメントはまだありません

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

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

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

回答リクエストを送信したユーザーはいません