浏览器是否可以在已打开的网站中打开链接?

时间:2012-05-21 09:34:49

标签: javascript html5 browser

我有一个应用程序,其中我有标签,其中每个标签代表一个特定的子应用程序。

我希望在现有的浏览器标签中打开site.com/*等所有链接,并以某种方式触发收到/打开新链接的JavaScript事件,以便我可以在我的申请代替。

基本上,我正在构建一个Web应用程序,我希望在同一个应用程序实例中打开链接,而不是创建我的应用程序的多个实例。

这可能吗?

更新:我在谈论是否有人通过Skype或电子邮件发送链接,链接将在我的应用程序中打开。我知道大多数网络技术,我想不出任何方法,这就是为什么我离开这个问题,如果有人可能有一个想法。或者一个插件,如果没有,有一天我们可能得到一个,我会添加我自己的/更新问题的答案。

1 个答案:

答案 0 :(得分:1)

是。只需使用链接的target attribute在子应用程序浏览上下文(即选项卡,窗口)中打开它们。

打开链接时不会触发任何事件。您可以向所有链接添加单击事件处理程序,在URL匹配时执行所需的操作。


如果您希望Web应用程序打开特定协议或mime类型,即使HTML5也是如此。您可以使用window.navigator.registerProtocolHandler()window.navigator.registerContentHandler()。请参阅HTML5 Draft on Custom scheme and content handlers

如果用户为通过电子邮件等收到的链接打开新的标签/窗口,您通常无法捕获并阻止它。但您可以使用Cross-document messaging,例如window.postMessage,查看您的应用是否已在浏览器中的某个位置打开,然后关闭一个标签并关注另一个标签。