2017-05-01 107 views
0

最奇怪的事情正在发生。此单击事件打开一个空白的新选项卡,然后在原始选项卡中导航到适当的页面。怎么回事,我该如何解决?Window.open打开空白新选项卡?

我检查了检查员的目标=“_ 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

点击事件是在'IMG触发'标记并打开一个新的空白窗口(这就是你用window.open(url,“_blank”);')你的'a'标签正在做它应该做的事情并将用户发送到本地它在'href'中指定。 –

+0

它正在做你的代码告诉它做的事。在新标签中打开一个新窗口。然后将我重定向到另一个页面。你应该把URL放在window.open标签中。 –

+0

您不需要'a'标签上的'href'和'onClick'事件打开一个新窗口,选择其中一个。 –

回答

1

我假设你想浏览到锚HREF在新标签在当前页面的剩余时间。如果它是正确的,你需要:

新的单击处理程序:

$(".homedepot, .amazon, .walmart").on('click', function(e) { 
    e.preventDefault(); 
    url = $(this).parent().attr('href'); 
    window.open(url , "_blank"); 
    trackOutboundLink(url); 
}); 
相关问题