
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で質問しましょう!
似たような質問が見つかりました
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript jQueryでのレスポンシブが綺麗に動かない 3 2022/06/21 11:08
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- その他(ブラウザ) マイクロソフト/エッジを アンインストールしたいのですが 出来ません(グレイアウトして) どなたか方 5 2022/07/16 15:53
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- その他(パソコン・周辺機器) デバイスのペアリングのウィンドウサイズがおかしい 1 2023/01/18 18:48
- Firefox(ファイヤーフォックス) Firefoxで設定を「前回のウィンドウとタブを開く」にしてるのにタブがなくなる 2 2022/09/28 18:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBSを学ぶ前に、、、
-
エクセル2010のvbaについて
-
ブラウザが開いているかどうか
-
event.srcElementの動的設定
-
javascript 親オブジェクトと子...
-
タブブラウザで focus() を実...
-
チェックボックスを認識・不認...
-
画面間でのJavaScrip...
-
safariではロールオーバー機能...
-
JSでファイル数取得
-
gas 全角数字を半角数字に変換
-
JavaScriptでiframeの高さを自...
-
エディタ機能のTEXTAREAを作りたい
-
IE7でdocument.styleSheets[n]....
-
PHPを使って作成したボタンをク...
-
JavaScriptでショートカットキ...
-
JavaScriptでフォームの入力項...
-
HTAで,親ウインドウを閉じ...
-
JavaScriptを使えない環境につ...
-
javascriptでのmdb接続について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javaScriptでグローバル変数に...
-
ローカルのレジストリを読みたい
-
Webページ中の javascript をVB...
-
jQueryで、listの要素数を取得...
-
JavaScript 日数計算の関数で演...
-
JavaScriptは具体的に何ができ...
-
Javascript; フィールドの属性変更
-
イベントevt?evt.target:event....
-
Javascriptの全ての文法やオブ...
-
JavaScriptで複数のプロパティ...
-
CGIを呼び出した場合の戻り値を...
-
JSの「document.getElementById...
-
オライリーのプログラミングPHP...
-
split
-
エクセル2010のvbaについて
-
evtとは
-
クラス デフォルトプロパティの...
-
jquery か javascript で json ...
-
ASP.NETでURLにマッピングされ...
-
Dateオブジェクトの大小比較の...
おすすめ情報