无法在引导下拉菜单中单击左键。必须右键单击并在新选项卡中打开

时间:2017-12-04 14:10:26

标签: javascript twitter-bootstrap typescript

我有一个使用Bootstrap V3.3.7下拉菜单控件制作的下拉菜单,其中包含多个链接,但这些链接仅在我右键单击并在新选项卡中打开时才有效。如果我点击了,没有任何反应。控制台上没有错误,也没有网络活动。显然,如果我尝试在新标签中打开它们,它们就是有效的链接。

我的HTML:

<ul class="dropdown-menu">
      <li *ngFor="let item of safeUrlPair(button)">
        <a class="dropdown-item" [href]="item.value">{{ item.key }}</a>
      </li>
</ul>

打字稿的一部分:

safeUrlPair: () => [{ key: 'Link Text', value: this.object && this.object.id ? this.getSafeLink(`${this.objectLink}${this.object.id}`) : '' }

getSafeLink方法:

getSafeLink(link: string): SafeUrl {
    return this.domSanitizer.bypassSecurityTrustUrl(link);
}

我提出了一个不太有效的解决方法,但它取得了进展。

新HTML:

<ul class="dropdown-menu">
      <li *ngFor="let item of safeUrlPair(button)">
        <a class="dropdown-item" (click)="triggerLink(item.value)">{{ item.key }}</a>
      </li>
</ul>

triggerLink功能:

triggerLink(url: string): void {
   if (!url) {
     return;
   }

   window.open(url, '_blank');
}

这允许左键单击工作并在新标签页中打开链接,但由于它是safeURL,因此该网址不会像http://www.google.com那样作为典型链接传递。

它最终会像:http://localhost:4200/SafeValue%20must%20use%20[property]=binding:%20https://www.google.com%20(see%20http://g.co/ng/security#xss)

0 个答案:

没有答案