【问题标题】:"Open link in new tab" in browser vs. "target=_blank" in HTML浏览器中的“在新选项卡中打开链接”与 HTML 中的“target=_blank”
【发布时间】:2016-01-20 23:40:43
【问题描述】:

我正在为 Outlook Web Access 开发一个插件。我的插件只是一个使用带有target='_blank' 标记的按钮,它将用户发送到另一个页面。基于来自 Microsoft 的 document

在受支持的 Web 客户端(例如 Excel Online 和 Outlook Web App)中,Office 加载项托管在使用 HTML5 沙盒属性运行的 iframe 中。不允许使用 ActiveX 组件或浏览 Web 客户端的主页。通过集成适用于 Office 的 JavaScript API 在 Web 客户端中启用 Office 加载项支持。与桌面客户端应用程序类似,JavaScript API 管理插件生命周期以及插件和 Web 客户端之间的互操作性。这种互操作性是通过使用特殊的跨帧发布消息通信基础设施来实现的。桌面客户端上使用的相同 JavaScript 库 (Office.js) 可用于与 Web 客户端交互。

由于提到的沙盒,当点击链接时,目标页面没有正确显示,并且显示部分。令人惊讶的是,如果我右键单击同一个链接并选择“在新选项卡中打开链接”,目标页面会很好地显示而不会丢失其内容。

我的问题是: 在 HTML 中使用属性 target='_blank' 与在浏览器中选择“在新选项卡中打开链接”选项有什么区别?以及我如何模拟“在新选项卡中打开链接”选项以使我的插件工作而无需用户右键单击链接。

附:我已经在 Firefox 和 Chrome 中尝试过,它们的行为相同。

【问题讨论】:

  • 如果你使用target="_self"会发生什么?
  • 使用target="_self",链接消失,没有任何反应。该插件似乎在 iframe 中运行
  • 此时我觉得这是 API 本身的问题。

标签: javascript html office365 outlook-web-app


【解决方案1】:

target="_blank" 通常会在浏览器配置指定的位置打开链接。据我所知,没有办法控制它在标记本身中的工作方式。您是否在多个浏览器中尝试过此操作? 编辑:模拟“在新选项卡中打开”功能,target="_blank" 是正确的。

【讨论】:

  • 我用过 IE,但是 OWA 界面不同,我在里面看不到我的插件。我会在 Firefox 中试一试
  • 顺便说一句,根据我的实验,“在新标签页中打开”和target="_blank"不完全相同相同
  • @Ali 你是对的,它们并不完全相同。但是,要在标记中触发“在新选项卡中打开”功能,target="_blank" 是标准属性。有更多关于 here 的信息
  • 还有其他信息here,提供了一些JS脚本作为示例,您可以尝试一下。
  • 感谢 Paul,似乎任何浏览器都不支持 CSS3 target-new。我已经尝试过 JS window.open(url,'_blank') 导致与 target='_blank' 相同的行为
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多