2017-08-17 7 views
1

私は、ワードプレスのプラグインの動作をカスタマイズしていますhttp://shiftcontroller.com。このプラグインは、AJAXを「新しいシフトの作成」プロセスに使用します。Javascript - 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の方法でこれを強制することはできますか?

おかげ

+0

私はプラグインのコードがために理解し、広範かつ困難であるとして、AJAXリクエストが行われているかどうかはわかりません私のレベル。次のような意味ですか?href = "javascript:my_function();" ? – Craig

+0

うわー。それはうまくいった。質問に直接答えることができますか?私はあなたの答えを選択します。ありがとう:) – Craig

答えて

1

あなたはaタグに直接ハンドラを追加し、それが伝播を停止することができます。 (AJAX要求は、DOMツリーを委任を使用しているハンドラによって行われていると仮定。)

staffLink.addEventListener('click', function(e) { 
    e.stopPropagation(); 
}); 
関連する問題