【发布时间】:2014-06-28 08:23:53
【问题描述】:
我正在 Angular JS 中构建导航树。树中的大多数链接将指向我网站内的页面,但有些可能指向外部网站。
如果链接的 href 以 http:// 或 https:// 开头,那么我假设该链接是针对外部网站的(/^https?:\/\// 之类的正则表达式可以解决问题)。
我想将 target="_blank" 属性应用于这些链接。我希望在创建链接时使用 Angular 来做到这一点:
<ul>
<li ng-repeat="link in navigation">
<a ng-href="{{link.href}}" [add target="_blank" if link.href matches /^https?:\/\//]>{{link.title}}</a>
</li>
</ul>
谁能帮帮我?
谢谢
【问题讨论】:
-
实际上不要这样做。从 UI 的角度来看,这很糟糕。让用户决定何时打开新窗口或标签。
-
我知道你的意思,但是如果用户在网站上并且想要点击指向外部资源的链接,那么在新标签/窗口中打开链接而不是重定向他们的链接是有意义的当前选项卡。我会谨慎使用它,并且仅当我认为在没有其标签保持打开状态的情况下被引导离开网站会对某些用户造成刺激/困惑时。
-
没有。如果用户在网站上并想要单击链接,那么在同一个选项卡中打开是有意义的。如果他们想在新选项卡中打开它,他们将按住 ctrl 单击,或右键单击并说“在新选项卡中打开”。不要打破网络惯例。
-
@GoodPerson - 从用户体验的角度来看,这肯定是有好处的。我们的 AngularJS 项目是一个 SPA。点击/单击链接的用户希望在不中断他们在应用程序中的工作的情况下打开链接。默认情况下在新选项卡中打开是满足此需求的适当方式。
-
@GoodPerson 在当前选项卡中打开外部链接是一种糟糕的体验,因为普通用户不知道使用后退按钮进行导航。在 UAT 会话中花费 1 小时,然后再次告诉我“网络约定”必须始终遵守。
标签: javascript angularjs