我有一个使用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,因此url不会作为典型链接传递,如http://www.google.com .