我有一个使用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那样作为典型链接传递。