0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

window.openでwindowを再利用する時にそのtabに移動したい

Posted at

この記事で分かること

Window.focus()メソッドの使い方

背景

window.open(url,_blank)で今までwindowを開いていたが、これだとタブが増えていく一方でした。
タブが増えていくとブラウザが重くなってしまいます。。

MDNによると単一のターゲット属性値を使用することでユーザリソースに優しい実装ができると記載されていました。

Using a single target attribute value and reusing it in links is much more user resources friendly as it only creates one single secondary window, which is recycled.

window.open(url, "WINDOW_NAME")
これで実装しましたが、今度は今回の記事で取り扱う問題が起きました。
window.openしてもそのタブに移動してくれません。

そこでどうしたら良いのか調べてみました。

実装

前提

  • window.open() で開く window の url は毎回変える使い方を想定
    window.open(url,'WINDOW_NAME')

Window.focus

https://developer.mozilla.org/en-US/docs/Web/API/Window/focus
ウィンドウを最前面にしてくれるそうです。

const openWindow = (url:string)=>{
    const windowObjRef = window.open(
                        url,
                        'WINDOW_NAME'
                    );
    windowObjRef!.focus();
}

window.openの呼び出し元のタブがリロードされない限り、windowObjRefには同じ参照値が保持され続けます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?