web-dev-qa-db-ja.com

Target = '_ blank'は、新しいタブではなく、新しいウィンドウに表示することもできますか?

これどうやってするの?

Firefoxではリンクが新しいタブで開きます...このためにユーザーがブラウザの設定を設定する必要はありません...

ユーザーがメインページで[連絡先]をクリックするたびに、連絡先フォームがポップアップで表示されるようにしたい。

どうすればよいですか?

24
user188962

あなたはこれを制御することはできません-それは完全にユーザーエージェントの裁量にあります。結局のところ、これがポイントです。指定できるのは、ページを別のビューペインコンテキストで開くことであり、ウィンドウが画面スペース/タスクバーリスト/ Alt-Tabショートカットなどをどのように使用するかはユーザー次第です。

実際、私はさらに進んで、可能な限り新しいタブ/ウィンドウを開かないようにする必要があると言います。私はウェブサイトがこれをするときに少しイライラすることを知っています、そしてそれは私たちが今日持っているすべてのAjaxとフローティングdivと魔法で少し不格好と1990年代を感じます。

30
Andrzej Doyle

これは正常に動作しています

window.open(yoururl, "Popup", "location,status,scrollbars,resizable,width=800, height=800");

すべてのパラメーターについては window.open を参照してください

24
M2012
<a href="javascript:window.open('http://example.com/popup.html','blank')">Contact</a>
12
Mark Byers

これはブラウザのみの設定であり、HTMLやJavaScriptからは設定できないと思います。

3
Joe

これを制御することはできません。

ただし、新しいウィンドウで開いて、ブラウザーが拒否した場合は別の解決策を表示することもできます。

これは、window.open()の戻り値を確認することで実現できます。

var win = window.open(strUrl, strWindowName);
if (!win) {
    // Call failed. Handle it here. 
    // You can for example open content in a model or show a button that 
    // will open content in a new tab
}

window.openドキュメント: https://developer.mozilla.org/en-US/docs/Web/API/Window/open

0
HoffZ

この問題を調べたところ、window.open()関数の「高さ」と「幅」の部分が、リンクを新しいタブではなく新しいウィンドウで開くようになっていることに気付きました。

同様のサイズのブラウザを開くには、window.innerHeightとwindow.innerWidthをwindow.open()関数に渡しました。

@ M2012の回答についてコメントしたところですが、まだ十分なポイントがありません...

お役に立てれば!

0
vancy-pants

これも簡単な方法ですが、リンクが表示されないため、ボタンアクションに適しています

<a onclick="window.open('print.html', 'newwindow', 'width=300,height=250');"> Print</a>
0
A.A Noman

HTMLで新しいウィンドウを開く最良の方法。

<a href="#" onclick="MM_openBrWindow('http://www.google.com','','resizable=yes,width=800,height=600')"> Google</a>

<script>
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
</script>
0
Blackspade

コードビハインドを使用してこれを使用したい場合、それも機能します...

protected void lnkAddNewWorkout_Click(object sender, EventArgs e)
    {
  //  Response.Write("<script>window.open('MyCreatedWorkout.aspx','_blank');</script>");    //it Open in new tab

    ResponseHelper.Redirect("MyCreatedWorkout.aspx", "_blank", "menubar=0,width=700,height=700");

    }



 public static class ResponseHelper
    {
        public static void Redirect(string url, string target, string windowFeatures)
        {
            HttpContext context = HttpContext.Current;
        if ((String.IsNullOrEmpty(target) ||
            target.Equals("_self", StringComparison.OrdinalIgnoreCase)) &&
            String.IsNullOrEmpty(windowFeatures))
        {

            context.Response.Redirect(url);
        }
        else
        {
            Page page = (Page)context.Handler;
            if (page == null)
            {
                throw new InvalidOperationException(
                    "Cannot redirect to new window outside Page context.");
            }
            url = page.ResolveClientUrl(url);

            string script;
            if (!String.IsNullOrEmpty(windowFeatures))
            {
                script = @"window.open(""{0}"", ""{1}"", ""{2}"");";
            }
            else
            {
                script = @"window.open(""{0}"", ""{1}"");";
            }

            script = String.Format(script, url, target, windowFeatures);
            ScriptManager.RegisterStartupScript(page,
                typeof(Page),
                "Redirect",
                script,
                true);
        }
    }
}

参照元: http://www.codeproject.com/Tips/317410/Response-Redirect-into-a-new-window

0
Durgesh Pandey