window.open(url)
アイテムが選択されたときに呼び出す選択ボックスがあります。Firefoxはデフォルトで新しいタブでページを開きます。ただし、ページを新しいタブではなく、新しいウィンドウで開くことを希望します。
どうすればこれを達成できますか?
window.open(url)
アイテムが選択されたときに呼び出す選択ボックスがあります。Firefoxはデフォルトで新しいタブでページを開きます。ただし、ページを新しいタブではなく、新しいウィンドウで開くことを希望します。
どうすればこれを達成できますか?
回答:
ウィンドウに幅/高さの「仕様」パラメーターを指定します。可能なすべてのオプションについては、こちらをご覧ください。
window.open(url, windowName, "height=200,width=200");
幅/高さを指定すると、タブではなく新しいウィンドウで開きます。
高さを使用する必要はありません。使用することを確認してください。高さを使用しない場合、高さ_blank
は新しいタブで開きます。
空のウィンドウの場合:
window.open('', '_blank', 'toolbar=0,location=0,menubar=0');
特定のURLの場合:
window.open('http://www.google.com', '_blank', 'toolbar=0,location=0,menubar=0');
location=0
、JSがボタンまたはアンカー要素から呼び出される場合に必要です。
location=0
します。ヒントはパラメータを追加することです。私はまた、ウィンドウに名前を付ける代わりに使用して使用することをお勧め_blank
ターゲットを、ユーザーがポップアップを開く何回かの要素をクリックした場合、同じウィンドウが再び使用されるように、として、連鎖focus()
すでに開かれたポップアップがフォーカスを取得するようにすることを:window.open('http://stackoverflow.com', 'Stack_Overflow','location=0').focus();
私は間違っているかもしれませんが、私が理解しているところによると、これはユーザーのブラウザー設定によって制御されており、これがオーバーライドされる可能性があるとは思いません。
試してください:
window.open("", [window name], "height=XXX,width=XXX,modal=yes,alwaysRaised=yes");
私はあなたの言うことをするいくつかのコードを持っていますが、その中にはたくさんのパラメーターがあります。これらは最低限必要だと思います。それが機能しない場合はお知らせください。残りは投稿します。
わかりました、たくさんのテストを行った後、ここで私の結論です:
実行すると:
window.open('www.yourdomain.tld','_blank');
window.open('www.yourdomain.tld','myWindow');
または宛先フィールドに入力したものは何も変更されません:新しいページが新しいタブで開かれます(ユーザーの設定によって異なります)
ページを新しい「実際の」ウィンドウで開く場合は、追加のパラメーターを指定する必要があります。お気に入り:
window.open('www.yourdomain.tld', 'mywindow','location=1,status=1,scrollbars=1, resizable=1, directories=1, toolbar=1, titlebar=1');
テスト後、使用する追加のパラメータのようですが、問題はありません。これは、「このパラメータ」や「これ以外のパラメータ」を配置して新しい「実際のウィンドウ」を作成するという事実ではなく、新しいパラメータがあるという事実です。 )。
しかし、何かが混乱していて、多くの間違った答えを説明しているかもしれません:
この:
win1 = window.open('myurl1', 'ID_WIN');
win2 = window.open('myurl2', 'ID_WIN', 'location=1,status=1,scrollbars=1');
この:
win2 = window.open('myurl2', 'ID_WIN', 'location=1,status=1,scrollbars=1');
win1 = window.open('myurl1', 'ID_WIN');
同じ結果は得られません。
最初のケースでは、追加のパラメーターなしで最初にページを開くと、新しいタブで開きます。この場合、指定した名前により、2番目の呼び出しもこのタブで開かれます。
2番目のケースでは、追加のパラメーターを使用して最初の呼び出しが行われると、ページが新しい「実際のウィンドウ」で開かれます。その場合、2番目の呼び出しが追加のパラメーターなしで行われた場合でも、この新しい「実際のウィンドウ」で開かれますが、同じタブです!
これは、ページを配置する場所を決定した最初の呼び出しが重要であることを意味します。
あなたがする必要はありません。ユーザーが好きな設定を行えるようにします。
新しいウィンドウでページを開くのは煩わしいため、Firefoxはデフォルトでこれを実行します。ユーザーが希望しない場合は、ページの操作を許可しないでください。(Firefoxでは、このように設定すると、新しいウィンドウでタブを開くことができます)。
あなたは次の機能を試すかもしれません:
<script type="text/javascript">
function open(url)
{
var popup = window.open(url, "_blank", "width=200, height=200") ;
popup.location = URL;
}
</script>
実行用のHTMLコード:
<a href="#" onclick="open('http://www.google.com')">google search</a>
キーはパラメータです:
あなたがいる場合提供 [高さ=「」、幅=「」]パラメータを、それが新しいウィンドウで開きます。
パラメータを指定しない場合、新しいタブで開きます。
ChromeおよびFirefoxでテスト済み
その方法を試してください...
function popitup(url) {
//alert(url);
newwindow=window.open("http://www.zeeshanakhter.com","_blank","toolbar=yes,scrollbars=yes, resizable=yes, top=500, left=500, width=400, height=400");
newwindow.moveTo(350,150);
if (window.focus)
{
newwindow.focus()
}
return false;
}
私はこれをIE(11)とChrome(54.0.2794.1カナリアSyzyASan)で試してみました:
window.open(url, "_blank", "x=y")
...そして、それは新しいウィンドウで開きました。
つまり、クリント・パクルつまり、いずれかのパラメーターを指定すると新しいウィンドウが開くと彼が言ったときは正しかったということです。
-そして、明らかにそれは正当なパラメータである必要はありません!
(YMMV-私が言ったように、私はそれを2つの場所でテストしただけです...そして次のアップグレードは結果を無効にするかもしれません)
ETA:気がついたのですが、IEではウィンドウに装飾がありません。
ここで答えた。しかし、参考のためにもう一度投稿してください。
window.open()
実際のクリックイベントで発生していない場合、新しいタブで開きません。与えられた例では、URLは実際のクリックイベントで開かれています。これは、ユーザーがブラウザで適切な設定をしている場合に機能します。
<a class="link">Link</a>
<script type="text/javascript">
$("a.link").on("click",function(){
window.open('www.yourdomain.com','_blank');
});
</script>
同様に、クリック関数内でajax呼び出しを実行しようとしていて、成功時にウィンドウを開く場合は、async : false
オプションを設定してajax呼び出しを実行していることを確認してください。
私も同じ質問をしましたが、比較的簡単な解決策を見つけました。
JavaScriptではwindow.opener !=null;
、ウィンドウがポップアップであるかどうかを確認するためにチェックしていました。同様の検出コードを使用して、サイトがレンダリングされているウィンドウがポップアップであるかどうかを判断している場合、新しいウィンドウのJavaScriptを使用して「新しい」ウィンドウを開きたいときに、簡単に「オフにする」ことができます。
これを常に「新しい」ウィンドウにしたいページの上部に置くだけです。
<script type="text/javascript">
window.opener=null;
</script>
私は自分のサイトのログインページでこれを使用して、ユーザーがポップアップウィンドウを使用して自分のサイトに移動しても、ポップアップの動作が発生しないようにしています。
これを実行して、指定したURLに移動する単純なリダイレクトページを作成することもできます。何かのようなもの、
親ページのJavaScript:
window.open("MyRedirect.html?URL="+URL, "_blank");
そして、ここから小さなJavaScriptを使用することで、URLを取得してリダイレクトできます。
リダイレクトページのJavaScript:
<script type="text/javascript">
window.opener=null;
function getSearchParameters() {
var prmstr = window.location.search.substr(1);
return prmstr != null && prmstr != "" ? transformToAssocArray(prmstr) : {};
}
function transformToAssocArray( prmstr ) {
var params = {};
var prmarr = prmstr.split("&");
for ( var i = 0; i < prmarr.length; i++) {
var tmparr = prmarr[i].split("=");
params[tmparr[0]] = tmparr[1];
}
return params;
}
var params = getSearchParameters();
window.location = params.URL;
</script>