Target='_blank' 显示在新窗口中,而不是新选项卡中,可能吗?

IT技术 javascript html browser
2021-02-28 18:19:11

我怎样才能做到这一点?

在 Firefox 中,链接会在新选项卡中打开...我不希望用户必须为此设置浏览器的设置...

我希望每当用户在我的主页上单击“联系人”时,都会出现一个带有联系人表单的弹出窗口。

我该怎么做?

6个回答

这工作正常

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

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

编辑日期:- 2021 年 8 月 12 日 如果您不想使用 JavaScript 函数,那么您可以在新 Windows 中为打开页面编写内联脚本,它支持所有现代浏览器

<a href="https://stackoverflow.com/" onclick="window.open('https://stackoverflow.com/', 'newwindow', 'width=400, height=250'); return false;">with href</a>


<a href="#" onclick="window.open('https://stackoverflow.com/', 'newwindow', 'width=400, height=250'); return false;">without href</a>

您可以在此jsfiddle.net 链接上看到 Live Working 示例

同意约翰:来自 Kiran os 的回答 OK。基本的 window.open 不起作用:Firefox(例如)在新选项卡中打开。但基兰的方法是对的。
2021-04-28 18:19:11
这如何对抗弹出窗口拦截器?
2021-05-03 18:19:11
这应该有更多的投票。虽然它最终取决于浏览器,但使用它向浏览器表明它应该是一个弹出窗口。
2021-05-09 18:19:11

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

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

facebook 是如何通过他们的身份验证来做到这一点的?Twitter 和 pinterest 也是如此?
2021-04-15 18:19:11
对于 OAuth 等流来说是必需的。似乎其他人已经完成了这一壮举。
2021-04-22 18:19:11
@Icm 自从我发布这个答案以来的十二年里,事情可能已经发生了变化。
2021-04-29 18:19:11
<a href="javascript:window.open('http://example.com/popup.html','blank')">Contact</a>
我当然不认为你应该这样做,但你可以。javascript URL 无法访问是一个可以通过修改 onLoad 文档轻松解决的问题。
2021-04-21 18:19:11
并且_blank并且void,否则窗口引用toString将替换当前文档。它仍然不起作用(如果浏览器是这样配置的,它将在新窗口中打开)。并且由于不必要地使用javascript:URL而无法访问(永远不要使用这些)。
2021-04-23 18:19:11
根据Mozilla 的说法,只是为了给任何偶然发现它的人提供一个不使用它的具体理由:切勿将这种形式的代码用于链接:<a href="javascript:window.open(...)" ...> “javascript:”链接会破坏网页在每个浏览器中的可访问性和可用性。
2021-04-23 18:19:11
我相信你的意思是 window.open。
2021-05-03 18:19:11

我相信这是无法从 HTML 或 Javascript 设置的仅限浏览器的设置。

不能设置,但正如@Mark Byers 指出的那样,Javascript 可以打开一个新窗口。
2021-05-07 18:19:11

当我研究这个问题时,我注意到 window.open() 函数的“高度”和“宽度”部分是使链接在新窗口而不是新选项卡中打开的原因。

所以为了打开一个类似大小的浏览器,我只是将 window.innerHeight 和 window.innerWidth 传递给 window.open() 函数。

我本来只想评论@M2012 的回答,但我的积分还不够……

希望这可以帮助!