如何处理EmberJs动作中的“在新选项卡中打开”的右键单击?

问题描述 投票:0回答:1

我有一个链接,该链接要求点击以下操作。我没有填充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();
}

如果用户右键单击并选择“在新选项卡中打开”,是否可以将用户定向到正确的页面?

javascript ember.js action ember-cli
1个回答
0
投票

根据进一步的研究,我认为这不可能在一个动作之内完成,但是如果有人感兴趣,我会提供一种解决方法。

我不希望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}`);
}
© www.soinside.com 2019 - 2024. All rights reserved.