【问题标题】:Javascript - Disable ajax/force new window. (WordPress)Javascript - 禁用 ajax/强制新窗口。 (WordPress)
【发布时间】:2017-08-17 18:29:51
【问题描述】:

我正在自定义 wordpress 插件 http://shiftcontroller.com 的行为。该插件使用 AJAX 进行“创建新班次”过程。

我已使用 javascript 将个人资料链接添加到预先存在的员工列表中,但我的链接正在尝试进行 AJAX 调用,而不是在新选项卡中打开。

这是我目前得到的:

      var StaffInputs = document.querySelectorAll('.hc-sm-col.hc-sm-col-6 ul li input');
  console.log(StaffInputs);

  for (i = 0; i < StaffInputs.length; ++i) {
    console.log(StaffInputs[i].defaultValue);
    // var staffLink = document.createElement( "a", { class: "staff-profile-link", href: "http://mydomainhere.co.uk/user/"+StaffInputs[i].defaultValue } );
    var staffLink = document.createElement("a");
    staffLink.setAttribute( "class", "staff-profile-link" );
    staffLink.setAttribute( "href", "http://mydomainhere.co.uk/?author="+StaffInputs[i].defaultValue );
    staffLink.setAttribute( "target", "_blank" );
    staffLink.setAttribute( "rel", "external" );
    staffLink.setAttribute( "data-ajax", "false" );
    staffLink.innerHTML = '    <i class="icomoon icomoon-notification"></i>';
    StaffInputs[i].nextSibling.appendChild(staffLink);
  }

但是,由于某种原因,我的链接仍然无法在新窗口中打开。有什么方法可以通过 Javascript 强制执行此操作?

谢谢

【问题讨论】:

  • 我不确定 ajax 请求是如何发出的,因为插件代码非常广泛且难以理解。你的意思是这样的:href="javascript:my_function();" ?
  • 哇。那行得通。你能直接回答这个问题,我会选择你的答案。谢谢:)

标签: javascript ajax wordpress


【解决方案1】:

您可以直接在a 标签上添加一个处理程序并让它停止传播。 (假设 AJAX 请求是由使用 DOM 树的委托的处理程序发出的。)

staffLink.addEventListener('click', function(e) {
    e.stopPropagation();
});

【讨论】:

    猜你喜欢
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 2017-06-11
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多