2つのサイトを2つの画面だけで行き来できるようにしたいと考えています。
例えば、メインのページのあるボタンから、サブのページにリンクして、さらにサブのページのボタンをクリックすると、メインがメインサイト内の別ページのURLに変わり、サブのページの前面に出てほしいのです。
そして、もし、サブのページをクリックする際にメインのページが閉じてしまっていた場合は、新しくメインウィンドが立ち上がる、という風にしたいのですが、可能でしょうか?
サブウィンドからメインウィンドを制御するscriptは見つけたのですが、その際にメインが前面に出ないというところと、メインが閉じてしまっていると何も起こらないというところでつまずいています・・・。
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で実現できないこともないです。(結構大変)
main1.htm メインの1ページ目
sub.htm サブ
main2.htm メインの2ページ目
main3.htm メインの3ページ目
このリンクから開けば、subのソースか見られると思います。
なるほど!ありがとうございます。
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>
2つのサイトというのは同ドメイン内にあります、仮想の2サイトになります。ということは、このスクリプトが使えるということですかね〜。さっそく試してみます!