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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

2回答

35510閲覧

javascriptのwindow.open()で別窓が開かれない

raraman

総合スコア6

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

1グッド

0クリップ

投稿2018/07/26 13:54

編集2018/07/26 14:55

前提・実現したいこと

環境winodws10、IE11(IE設定のタブ:ポップアップ設定:IEで自動判定)
javascriptのwindow.open関数の第三パラメータにtoolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes
を指定して新規ウインドウを開きたいです。

発生している問題・エラーメッセージ

window.openの第三パラメータにtoolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes
上記のオプションをすべてをyesで設定するとなぜかタブで開かれてしまいます。
いずれか一つをnoに設定すると新規ウインドウで開かれます。

該当のソースコード

html,javascript

1<html> 2 3<head> 4<title>window.open - ウィンドウを開く</title> 5</head> 6 7<body> 8 9<!--ウィンドウを開くのサンプル--> 10<script type="text/javascript"> 11function open1() { 12 win1 = window.open("http://www.yahoo.com", "yahoocom", "toolbar=no,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes"); 13 } 14function close1() { 15 if (win1 != null && win1 != undefined) { 16 win1.close(); 17 } 18} 19</script> 20<button onclick="open1()">open1</button><br> 21<hr> 22<button onclick="close1()">close1</button><br> 23 24</body> 25

試したこと

chrome、edgeでも同様の現象となりました

補足情報(FW/ツールのバージョンなど)

x_x👍を押しています

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

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

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

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

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

guest

回答2

0

IE11の現仕様だと、toolbar=yes の指定のままで「別窓」は開けないのだと思います。

別窓を開くときの、window.openの「オプションを指定」は、確かに出来るのですが、
実際に指定したオプションどおりに「別窓が開ける」わけではないです。

これは、ブラウザ毎に、それぞれ「別窓時の機能制限のようなもの」があるからで、
例えば、
IE11は、別窓の場合「ツールバー」は非表示固定のようですし、
Chrome(最新)は、別窓の場合「メニューバー」も非表示固定のようです。

~~私がざっくりと確認した限りですが、IE11、Edge(最新)、Chrome(最新)は、
1つでも「別窓では不可能な指定」が含まれている場合に、別窓ではなく別タブ開くよう、
ブラウザ自身が判断しているようでした。
~~

ネックになりそうのは、toolbar、menubarあたりかと思いますので、
全てのブラウザで「別窓」対応したいのであれば、これらを「no」にすると良さそうです。

IEのみで「別窓」に対応したいのであれば、「toolbar=no」だけでも。

ただし、ブラウザ仕様は、うつろいゆくものなので、バージョンがちょっとでもあがれば、
仕様変更があるかもしれませんので、その点はご留意くださいね・・!


色々訂正の上、追記します。

もう1回確認してみました!
オプションを消すと、yesではない状態で開くのが、

・デフォルト値なのか、
・noとして指定されたと判断されているのかが、

ちょっとわからなかったんですが、確かに他のオプションをnoにしてもIE11では別窓になるようでした・・
大変失礼しました・・!!

で、ご提案です。

toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes
に、
widthの指定を追加すると、上記の指定のままで別窓になるようだったので
開くボタンを置いているブラウザの横幅等を使って、widthに指定することで、
ご希望に近い形で別窓が開きそうですが、どうでしょうか?

Chromeでも横幅指定の追加で、別窓になりました。(横幅が指定した幅ではありませんでしたが・・)
※ただし上記に書いた「機能制限」は本当にあるものなので、
これで開いても、Chromeの別窓で「メニューバー」「ツールバー」は使えません。

投稿2018/07/27 02:01

編集2018/07/27 03:53
mix-peach

総合スコア1910

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

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

raraman

2018/07/27 02:50

ご回答ありがとうございます。確認いたしましたところ、toolbar=yes のままにし、他のバーを一つずつ"no"に指定していくと問題なく別窓で開かれました。ですので toolbarが問題というより "全てがデフォルト値の場合は未設定扱いとなっている"などの仕様があったりするなのかな~とも思っています。
mix-peach

2018/07/27 03:40

おや!本当ですね!! 確認が足りずすみません^^; 追記をします!
raraman

2018/07/27 04:09

ご回答ありがとうございます。確認いたしましたところwidthを指定しましても別タブで開かれてしまう状況となってしまいました。以下 window.open("http://www.yahoo.co.jp",target="_blank","toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=400"); 何かブラウザの設定の問題ですか、不明です。 たびたびありがとうございます。
mix-peach

2018/07/30 07:45

私は先頭にwidthの指定を追加したのですが、それで別窓で開くことを確認できました。 もしかすると、オプションの指定順序も影響するのかもしれませんね・・?
guest

0

Win10/IE11で確認したところ、toolbar=yesにするとタブになりました。他は影響しませんでした。

chromeだけなのであくまで参考ですが、Chrome 59 で window.open の挙動が変わったを発見しました。これに相当するIEの情報まで辿りつけず。

投稿2018/07/27 01:53

papinianus

総合スコア12705

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

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

raraman

2018/07/27 13:55

ご回答ありがとうございます。まだ解決には至らずの状態ですが、お手数おかけしましてありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問