
WEBページを作成しています。
javascriptで親子ウィンドウ(親子タブ)のフォーカスをコントロールしようとしています。
IEなどデフォルトが「ウィンドウを開く」設定のブラウザでは問題ないのですが、Firefox、Google Chrome、Mac Safariなどのタブブラウザ(「新しいウィンドウでなく新しいタブでひらく」がデフォルト設定のブラウザ)ではうまくフォーカスしません。
以下に現在のソースを記載させていただきました。
実現のためのアドバイスをお願いします。
以下が現在のソースです。
===================================================
function GoTo_Home() {
if(!opener) {
// openerが存在しない
Open_Home();
}
else if(opener.closed == true) {
// openerが閉じている
Open_Home();
}
else {
// openerを前に出す
opener.focus();
}
}
// 「parentsite」を開き、openerにする
function Open_Home(parentsite) {
var parentsite = window.open("http://www.hoge.com/");
opener = parentsite;
parentsite.focus();
}
===================================================
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
一般的な用語と、windowオブジェクトのプロパティ名や、メソッド名
とその使い方についてかなり混乱されていると思われます。
実際ややこしいし、様々な書き方や省略があるので、わかりにくいかも
しれませんが、一度整理してみましょう。
.focus() windowオブジェクトをフォーカスします。(メソッド)
.name windowオブジェクトの名前(プロパティ)参照/変更可能
.opner 自分自身を開いた親ウィンドウを示す(プロパティ)参照/変更はブラウザー依存
.open(url,name,option) nameの名前を持った新しいwindowオブジェクト
を開くメソッド
.parent 親オブジェクト(windowオブジェクトとは直接は関係しない)
.location windowオブジェクトのロケーションオブジェクト
さらにlocation.hrefとかlocation.replace()とか...
参考URL:http://www.scollabo.com/banban/java/ref_01.html
質問もままならないところに、ご丁寧なアドバイスをいただき、大変感謝しております。
オブジェクトの階層構造とオブジェクトごとのプロパティ、メソッドをつかまないとまず扱えないことであることが良くわかりました。
いただいた参考サイトの入門編からみっちり勉強して、改めて質問・補足をしようと思います。
本当にありがとうございます。
No.1
- 回答日時:
いまいちフローとして何がやりたいのかわからないですが、
openerを代入するのはブラウザ依存では?
この回答への補足
さっそくのご回答まことにありがとうございます。
説明不足で申し訳ありません。
フローは以下です。
(1)母体のサイトからリンククリックで、関連ページを別ウィンドウで表示
(2)別ウィンドウで表示された子ウィンドウから、リンククリックで母体のサイトに戻させたい
→これを実現させたいのですが、新規ページがタブで増えていくブラウザの場合、親ウィンドウが「消されず存在」していたとき、タブのフォーカスが移らないという問題があります。
つまり子ウィンドウ(子タブ)で母体へのリンクをクリックしてもタブは移らず、子ウィンドウ(子タブ)のままというのが芳しくないのです。
IEのようなデフォルトで新規オープンページがウィンドウとして重なって現れるブラウザでは、親ウィンドウ(母体)が存在している場合、ウィンドウを手前にだす→「フォーカスの動作」が実行されてまったく問題ありません。
>openerを代入するのはブラウザ依存では?
こちらはどういった意味でしょうか?知識が乏しくご迷惑をおかけします。
それはopenerは利用しない方法を探したほうがよろしいということでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
オブジェクト配列の各メンバを...
-
Outlookのアカウントがあるとメ...
-
スマホ上で、左右スワイプで次...
-
タグを教えてください。
-
ラジオボタンを複数選択したと...
-
jsで質問です。 formをsubmitし...
-
2025年相性がいい人のサイトの...
-
CookieをWebStoeageに変える
-
Adobe acrobat proでフォームを...
-
jqueryのselect2で検索欄の文字...
-
<tr>指定した表の行要素をボ...
-
食材の期限を管理するためにGAS...
-
ビデオのJSについて
-
鍵盤アプリで、スマホの画面に...
-
<div>のタッチ状態を維持したま...
-
jQueryでシンセサイザーを作っ...
-
プログラミング 学習
-
HTMLでサブフレームから親のス...
-
ジャバスクリプトについて。
-
プログラムについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javaScriptでグローバル変数に...
-
JavaScriptで複数のプロパティ...
-
strictモードでなぜエラーにな...
-
Shell.ApplicationでのIEオブ...
-
jquery か javascript で json ...
-
イベントevt?evt.target:event....
-
タブブラウザで focus() を実...
-
イベントリスナーで読み込んだ...
-
ローカルのレジストリを読みたい
-
ASP.NETでURLにマッピングされ...
-
javascriptにてXMLの読み込み
-
文字を移動させその位置を表示...
-
クラス デフォルトプロパティの...
-
Dateオブジェクトの大小比較の...
-
エクセル2010のvbaについて
-
Javascript; フィールドの属性変更
-
一定時間経つと画像を消す方法
-
event.srcElementの動的設定
-
PowerPointで時計表示
-
JSPの処理の途中で、JavaScript...
おすすめ情報