質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

タブ

コンテンツの上下左右に参照用のメニューを設けることで、複数の要素やページの表示を可能にするユーザーインターフェイスパターンのこと。メニューをクリックすると、一つの要素が可視化され、他の要素は見えなくなる。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

2回答

10346閲覧

【ブラウザ】リンクを新しいウインドウのタブで開くJavaScript

TsubasaHiga

総合スコア12

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

タブ

コンテンツの上下左右に参照用のメニューを設けることで、複数の要素やページの表示を可能にするユーザーインターフェイスパターンのこと。メニューをクリックすると、一つの要素が可視化され、他の要素は見えなくなる。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2015/06/24 13:55

ご覧頂きありがとうございます。
初質問に付きご面倒をお掛けするかと思いますが宜しくお願い致します。

特定ページ内(HTMLページ)にあるリンクをクリックした際に、新しいウインドウのタブで開く動作を実現したいと思っています。
想定ブラウザはChromeです。

□動作イメージ
初期状態:ウインドウ1でHTMLページ表示。

「リンククリック」→「新たにウインドウを開きリンク先を表示」
状態 ウインドウ1:HTMLページ表示
ウインドウ2:リンク先を表示

「リンククリック」→「先程開いたウインドウのタブで開く」
状態 ウインドウ1:HTMLページ表示
ウインドウ2:リンク先をバックグラウンドで表示

WIDTH:600]WIDTH:600
参考URL:私のブログ

この辺の私の理解度は浅く恐らくは出来るだろうと思っていますが、そもそも仕組み的に難しいという場合もあるかと思います。
別の方法でも動作が実現できるのであればご教示頂けると非常に嬉しいです。

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

開くページが全て自分の管理するサイトであるなら、JavaScriptで開いた子ウィンドウ内のHTMLも操作できますし、逆に子ウィンドウから親ウィンドウも操作できるので、恐らく可能です。

親ウインドウからサブウインドウ(子)を制御
プログラミングお役立ちメモ

参考先のブログの内容を元にします。

まず普通にウインドウを下記画像の様に2つ開きます。まぁ別プロセス化している状況ですね。左側をウインドウ1として右側をウインドウ2とします。

このウインドウ2が、ウインドウ1でwindow.openにより開いたものであるならば、制御可能です。
しかし、普通に開いた場合…つまり、ブラウザのメニューなどから「新しいウィンドウを開く」などして開いたものがウインドウ2である場合、制御は不可能です。
(と言い切ってしまうのは不安なのですが、少なくとも私は制御する方法を知りません)

ウインドウ2にHTMLページを開いて、幾つかあるリンクをクリックします。

クリックすると通常だとウインドウ2でタブで開く所を、ウインドウ1で開きます。そしてもう一度同様の動作をするとタブで開く(バックグラウンドで)ようにしたいわけです。

簡易的に検証した所、ウィンドウ2でページ移動してしまうと親ウィンドウであるウインドウ1への参照が切れてしまうようなので、window.openによりウィンドウ2を開いた段階で該当のHTMLページを展開しているものとします。
ウィンドウ2でリンクのclickイベントを監視し、クリックされた場合に親ウィンドウ(ウィンドウ1)で新しいタブとしてリンク先のページを開きます。
親ウィンドウ(ウィンドウ1)の制御には、ウィンドウ2のJavaScriptでwindow.openerを利用します。

プログラミングお役立ちメモ

タブの開き方は以下が参考になるかもしれません。

javascriptで新規タブ/ウィンドウを作成する時の罠 | la casa de nieve

なお、クリックなどユーザのアクションにより開始された処理以外でwindow.openが実行された場合(例えばページ読み込み時や、一定時間ごとに実行など)、ポップアップブロックに引っかかりウィンドウ/タブが展開されません。
今回の場合、ウィンドウ1ではクリックにより開始された処理ではないので、ポップアップブロックに引っかかるかもしれません。

今は時間が無いためここで解答を終了しますが、後日、具体的なサンプルを作成し、作成可能かどうか追記させていただきます。

投稿2015/06/24 16:31

sounisi5011

総合スコア697

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TsubasaHiga

2015/06/26 13:05

貴重なお時間を割いて回答して下さりありがとうございました。 非常に詳しい情報を提示していただき感激しました。またteratailの素晴らしさも実感しました! 参考リンクを元に実際に親と子での制御が出来るということが確認できましたが、どうやら私の希望する異なるウインドウ間(プロセスが別)での制御というのはJSでは難しいようですね。 また調べてみるとChrome Extensions apiを用いればプラグインという形で希望する動作が実現できそうという事が分かりました。 プラグインの開発の間は紹介頂きましたポップアップでの親と子の制御での実装をしてみます。 本当に有難うございました。
guest

0

javascriptでは現在実行されているページに対する制御しかできません。
別タブや別ウィンドウ(ダイアログ以外)に対する制御はできませんので、ご希望の動作は実現できないかと思います。

投稿2015/06/24 14:14

chiku_

総合スコア1464

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TsubasaHiga

2015/06/26 12:52

貴重なお時間を割いて回答して下さりありがとうございました。 やはりウインドウ間での制御というのは別プロセスということもあって難しいそうですね。ただブラウザのプラグインという形でなら希望する動作が出来そうだということが分かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問