0

我有一个应用程序,其中有选项卡,每个选项卡代表一个特定的子应用程序。

我想拥有所有链接,例如site.com/*在已经存在的浏览器选项卡中打开,并且以某种方式可能会触发一个 JavaScript 事件,即接收/打开了一个新链接,以便我可以在我的应用程序中打开它。

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

这可能吗?

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

4

1 回答 1

1

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

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


如果您希望您的 Web 应用程序打开特定的协议或 mime 类型,即使使用 HTML5 也是可能的。您可以使用window.navigator.registerProtocolHandler()window.navigator.registerContentHandler()。请参阅关于自定义方案和内容处理程序的 HTML5 草案

如果用户为他通过电子邮件等收到的链接打开一个新选项卡/窗口,您通常无法捕捉和阻止这种情况。但是您可以使用跨文档消息传递,例如window.postMessage,查看您的应用程序是否已经在浏览器中的某个位置打开,然后关闭一个选项卡并关注另一个选项卡。

于 2012-05-21T09:38:46.123 回答