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

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

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

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

●質問者: ikuyy
●カテゴリ:コンピュータ 芸術・文化・歴史
✍キーワード:JavaScript SCRIPT クリック サイト ボタン
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● Mug
●20ポイント

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で実現できないこともないです。(結構大変)

◎質問者からの返答

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


2 ● yusaku5963
●20ポイント

http://www.geocities.jp/yusaku5963/main1.htm

メインウィンドウ

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

sub.htm サブ

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

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

http://www.geocities.jp/yusaku5963/sub.htm

サブウィンドウ

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

◎質問者からの返答

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


3 ● arcfour
●20ポイント

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>

関連質問


●質問をもっと探す●



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