我有一个链接,该链接要求点击以下操作。我没有填充href,因为我希望在操作中处理此问题,并且不想触发页面重新加载。
HBS
<a class="cursor-pointer" {{on "click" (fn this.goToPage this.nextPageNumber)}}>Next</a>
JS
@action
goToPage(pageName) {
this.args.pageUpdated('page', pageName.toString());
// scroll to top of search results
document.querySelector('.search-summary-title').scrollIntoView();
}
如果用户右键单击并选择“在新选项卡中打开”,是否可以将用户定向到正确的页面?
根据进一步的研究,我认为这不可能在一个动作之内完成,但是如果有人感兴趣,我会提供一种解决方法。
我不希望href干扰我的操作,因此在需要之前,我不想填充它。因此,我在下面修改了模板,您将看到我添加了另一个运行oncontextmenu
的操作。对于不知道此事件会在右键菜单弹出时发生的人。
HBS
<a href="#/" {{on "contextmenu" (fn this.setHref this.nextPageNumber)}}
{{on "click" (fn this.goToPage this.nextPageNumber)}}>Next</a>
我现在在setHref
操作中所做的只是填充href。现在,当用户选择“新建窗口”或“新建选项卡”时,它将转到正确的位置。JS
@action
setHref(pageName, event) {
event.target.setAttribute('href', `${window.location.pathname}?page=${pageName}`);
}