2011-05-23 41 views
1

我正在联系页面上的客户端可以输入邮政编码,这将带他们到谷歌地图的公司的方向,我遇到的问题是虽然超链接设置为target_blank,但仍然会打开窗口,而不是在网站页面前打开。我不知道为什么它会打开在手背和重点是在当前页上,而不是将其移动到谷歌地图页面打开另一页上的链接的问题

<a href="#" target="_blank"> 
       <img alt="" src="/images/contactUs/directionbtn.png" onclick="return openDirections(1);" /></a> 
<script type="text/javascript"> 

function openDirections(NumVal) { 

    if (NumVal == 1) { 

     if (document.getElementById("<%=txtPostcode.ClientID%>").value == "") { 
      alert("PostCode can not be blank"); 
      document.getElementById("<%=txtPostcode.ClientID%>").focus(); 
      return false; 
     } 
     else { 

      var regPostcode = /^([a-zA-Z]){1}([0-9][0-9]|[0-9]|[a-zA-Z][0-9][a-zA-Z]|[a-zA-Z][0-9][0-9]|[a-zA-Z][0-9]){1}([ ])([0-9][a-zA-z][a-zA-z]){1}$/; 
      var tempURL = document.getElementById("<%=txtPostcode.ClientID%>").value; 
      if (regPostcode.test(tempURL) == false) { 
       alert("Please Enter a Valid PostCode"); 
       document.getElementById("<%=txtPostcode.ClientID%>").focus(); 
       return false; 
      } 
      else { 
       var url = 'http://maps.google.co.uk/maps?saddr={' + $('#<%=txtPostcode.ClientID%>').val() + '}&daddr=&daddr=646+Preston+Rd,+Clayton-le-Woods,+Chorley+PR6+7EH,+United+Kingdom&iwloc=1&dq=Tangent+Design'; 


       document.location = url; 
       return true; 
      } 
     } 
    } 
    </script> 
+0

什么是“对倒手打开”呢?这对我来说就像JavaScript一样! – 2011-05-23 15:44:04

+0

该页面不会加载在网站前面,应该是 – 2011-05-23 15:45:05

回答

1

尝试window.open(url);代替document.location = url;

+0

window.open(url);打开同一页面两次,而不是去谷歌地图 – 2011-05-23 15:48:02

+0

然后你的功能可能会被调用两次。您可以通过添加警报轻松检查(“此弹出窗口应该只出现一次。”);在你的openDirections函数中。 – Fredrik 2011-05-23 16:00:44

+0

顺便说一句,从哪里openDirections叫? – Fredrik 2011-05-23 16:04:23

1

我看到你做的是设置当前窗口的URL的。也许尝试使用这样的东西来打开一个新窗口。

window.open('url to open',) 

代替document.location = url

+0

window.open(url);打开相同的页面两次,而不是去谷歌地图 – 2011-05-23 15:48:16

+0

@Muhammad Awais如果它打开相同的页面,说你可能会错误地设置网址。 – 2011-05-23 15:49:08

+0

我刚把它改成window.open(url); – 2011-05-23 15:50:47

1

每个浏览器可以被配置来处理页面如何打开新的。查看您正在使用的浏览器中的首选项,并查看这是否是您当前配置的行为。

+0

我对所有的浏览器检查,结果是一样的 – 2011-05-23 15:45:58

+0

它打开在一个标签或一个单独的窗口? – 2011-05-23 15:51:14

+0

它打开在一个标签 – 2011-05-23 15:52:10

0

我认为这是你在找什么:

var x = window.open(URL, 'name', '...'); 
x.focus();