确保在新窗口打开而非标签页的Javascript方法

3
请耐心阅读,这可能与(JavaScript在新窗口中打开而不是选项卡)类似,但链接执行的方式不同。当软电话接听时,我通过第三方应用程序打开“销售脚本”应用程序。如果销售代表已经打开了浏览器窗口(他们总是这样做),则在现有窗口中打开一个新选项卡,并且并不总是容易注意到。他们要求我始终使我的应用程序弹出一个新窗口,但据我所知,唯一的方法是通过浏览器的首选项。是否有我不知道的某些javascript可以“取消停靠”选项卡?我怀疑答案是否定的,但还是想问一下。

感谢您的时间!

[编辑] 最初我认为这可能超出了问题的范围,但我认为它可以说明我正在尝试做什么:第三方应用程序(iSymphony)在本地计算机上运行,并侦听我们的呼叫控制器上的事件。当代表回答时,它会触发一个URL,该URL会在系统的默认浏览器中打开。我实际上无法控制它的打开方式,这就是为什么我希望有一个javascript解决方案来确保我在新窗口中。


你是说销售人员在第三方应用程序中点击链接,然后该链接在他们现有浏览器的新标签页中打开?是的,那是IE设置(类似于“使用现有浏览器打开链接”之类的设置)。 - Mike Christensen
1个回答

12
如果你在调用 window.open 时指定了宽度和高度,大多数浏览器会在新窗口中打开链接而不是新标签页。
window.open(url, '_blank', 'width=300,height=200');

Fiddle: http://jsfiddle.net/kelervin/Pf8Rw/

参见此问题以获取更多讨论和详细信息。

如果目的是引起用户的注意,您可以考虑添加桌面通知(假设支持此功能的浏览器如Chrome是一个选项)。

参见此答案中的示例,可能正是您需要的。


1
我认为他正在寻找一种方法让现有的窗口“突破”标签页的限制。他无法控制窗口最初是如何启动的,因为这是由第三方应用程序完成的。 - Mike Christensen
谢谢Mike - 我意识到了这一点,当我看到你在问题上的评论时,我差点删除了我的答案,但是我想用一个解决问题的建议来更新我的答案 :) - Kelvin
1
谢谢您提供Chrome浏览器建议,我真的没有想到过。我想我会让第三方应用程序调用一个预设页面,使用您的window.open建议调用我的页面。这有些麻烦,但应该可以解决我的问题。虽然我希望能找到更优雅的方法,但有时候您只需完成任务就好。 :) - Jesse Q
如果您想要一个最大化的窗口,请查看此链接:https://dev59.com/c2kv5IYBdhLWcg3w3Ug0 - fstang
如果您在参数中添加",toolbar=yes",则它将在新标签页中打开而不是新窗口(在Chrome 59.0.3071.115中)。我们中的一些人刚刚发现了这一点-这一定是Chrome的最近更改。 - Michael K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接