2017-08-17 63 views
1

我自定義wordpress插件http://shiftcontroller.com的行爲。該插件使用AJAX進行「創建新班次」流程。Javascript - 禁用ajax /強制新窗口。 (WordPress)

我已經添加了配置文件鏈接到使用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強制執行?

感謝

+0

我不知道如何Ajax請求被做成插件代碼是廣泛的,很難理解的我的水平。你的意思是這樣的:href =「javascript:my_function();」 ? – Craig

+0

哇。這工作。你能直接回答這個問題嗎?我會選擇你的答案。謝謝 :) – Craig

回答

1

您可以在a標籤直接添加處理程序,並將它停止傳播。 (假設AJAX請求是由使用代表團了DOM樹的處理程序作出。)

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