2017-05-01 13 views
0

奇妙なことが起こっています。このクリックイベントは空の新しいタブを開き、元のタブで適切なページにナビゲートします。何が起こっているのですか、どのように修正するのですか?Window.open空白の新しいタブを開く?

後で追加された可能性があるtarget = "_ blank"属性のインスペクタをチェックしました。私は自分のコードで検索しましたが、何もしませんでした。したがって、window.openの_blank属性が空白の新しいタブを開き、同じタブ内のURLにナビゲートすることは意味がありません。

ありがとうございました。

$(".homedepot, .amazon, .walmart").on('click', function() { 
       url = $(this).attr('href'); 
       window.open(url , "_blank"); 
       trackOutboundLink(url); 
      }); 

    //var path = window.location.path; 
         var trackOutboundLink = function(url) { 
          var loc = function getLocation(url) { 
           var match = href.match(/^(https?\:)\/\/(([^:\/?#]*)(?:\:([0-9]+))?)([\/]{0,1}[^?#]*)(\?[^#]*|)(#.*|)$/); 
           return match && { 
           href: href, 
           protocol: match[1], 
           host: match[2], 
           hostname: match[3], 
           port: match[4], 
           pathname: match[5], 
           search: match[6], 
           hash: match[7] 
           } 
          } 



          newURL = loc.protocol + "//" + loc.host; 
          console.log(newURL) 


          ga('send', 'event', 'outbound click', 'click', newURL, { 
           'transport': 'beacon', 
           'hitCallback': function(){console.log("");} 
          }); 
         } 

マークアップ:

<a class="ilHide" href="<%= product.data["product.buy_amazon"].value[0].text %>"><img class="amazon" style="width:200px; position: relative; right: .5rem;" src="images/amazon2.jpeg" alt="Amazon" /></a> 
<a class="ilHide" href="<%= product.data["product.buy_homedepot"].value[0].text %>"><img class="homedepot" style="display:inline;position:relative;" src="images/homedepot.png" alt="Home Depot" /></a> 
<a class="ilHide" href="<%= product.data["product.buy_walmart"].value[0].text %>"><img class="walmart" style="width:200px;" src="images/walmart.jpeg" alt="Walmart" /></a> 
+0

(あなたが 'window.open(url、" _blank ");')を実行するように指示したことです)あなたの 'a'タグはそれがするべきことをしていて、ユーザーをロカに送ります'href'で指定されています –

+0

これはあなたのコードが行うべきことを正確にしています。新しいタブで新しいウィンドウを開きます。私を別のページにリダイレクトします。 window.openタグにurlを入れてください。 –

+0

'a'タグに' href'と新しいウィンドウを開く 'onClick'イベントの両方を必要とせず、そのうちの一つを選択してください。 –

答えて

1

私はあなたが現在のページに残っている間に、新しいタブでアンカーのhrefに移動するとします。それが正しいなら、あなたが必要です。

新しいクリックハンドラ:あなたのクリックイベントが `IMGでトリガされ

$(".homedepot, .amazon, .walmart").on('click', function(e) { 
    e.preventDefault(); 
    url = $(this).parent().attr('href'); 
    window.open(url , "_blank"); 
    trackOutboundLink(url); 
}); 
関連する問題