Target ='_ blank'在新窗口中显示,而不是新标签,可能吗?

时间:2009-12-02 17:36:15

标签: javascript html browser

我该怎么做?

在firefox中,链接会在新标签页中打开...我不希望用户为此设置浏览器设置......

每当用户点击主页上的“联系人”时,我都希望弹出窗口显示联系表单。

我该怎么做?

9 个答案:

答案 0 :(得分:29)

你无法控制这一点 - 完全由用户代理决定;毕竟,这就是重点。您可以指定的是页面在不同的视图窗格上下文中打开,由用户决定他们希望窗口如何占用其屏幕空间/任务栏列表/ Alt-Tab快捷方式等。

事实上,我会更进一步说,如果可能的话,你应该避免打开一个新的标签/窗口。我知道当网站做到这一点时我会感到有些恼火,并且感觉有点笨拙和20世纪90年代我们现在拥有的所有Ajax和浮动div以及魔法。

答案 1 :(得分:21)

这很好用

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

有关所有参数,请参阅window.open

答案 2 :(得分:12)

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

答案 3 :(得分:3)

我认为这是一个仅限浏览器的设置,无法通过HTML或Javascript设置。

答案 4 :(得分:0)

如果你想使用Code Behind使用这个东西那么它也可以工作......

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

答案 5 :(得分:0)

你无法控制它。

但您可以尝试在新窗口中打开,然后在浏览器拒绝尝试时显示替代解决方案。

您可以通过检查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

答案 6 :(得分:0)

在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>

答案 7 :(得分:0)

这也很简单,但链接不可见,适合按钮操作

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

答案 8 :(得分:0)

当我研究此问​​题时,我注意到window.open()函数的“高度”和“宽度”部分使链接在新窗口中打开,而不是在新标签页中打开。

因此,要打开类似大小的浏览器,我只是将window.innerHeight和window.innerWidth传递给window.open()函数。

我本来会对@ M2012的答案发表评论,但我的观点还不够……

希望这会有所帮助!