Safari не открывает href с помощью window.location.href - PullRequest
2 голосов
/ 26 января 2012

Safari игнорирует ссылку href. Другие браузеры передают функцию countClicks И передают ссылку, чтобы открыть новое окно браузера. Есть предложения?

Источник JavaScript выглядит следующим образом:

<script language="JavaScript" type="text/JavaScript">
    function        countClicks(enterprise_code,sid_code,buspart_id,prod_id,server_name,path_info,query_string)
    {
    window.location.href = "/sharedInc/cf/polTrack.cfm?Buspart_id=" + buspart_id + "&Enterprise_Code=" + enterprise_code + "&Sid_Code=" + sid_code  + "&Prod_id=" + prod_id + "&Server_Name=" + server_name + "&Path_Info=" + path_info + "&Query_String=" + query_string;
    }
</script>

Принимая во внимание, что разметка HTML:

<a href="http://www.polclients.com" target="_blank" onclick="countClicks('POL','POL',6808,387,'www.princetonol.com','/index.cfm','x=x&at=no')">Link</a>

Ответы [ 2 ]

0 голосов
/ 08 июля 2013

Удалите URL-адрес из href и передайте URL-адрес вызываемой функции onclick .
Внутри этой функции вы можете просто использовать window.open (your_url), чтобы открыть ссылку в новой вкладке.
Итак, это решит вашу проблему.
Вот пример:

<script language="JavaScript" type="text/JavaScript">
function countClicks(enterprise_code,sid_code,buspart_id,prod_id,server_name,path_info,query_string,new_site_url)
{
    window.open(new_site_url);
    window.location.href = "/sharedInc/cf/polTrack.cfm?Buspart_id=" + buspart_id + "&Enterprise_Code=" + enterprise_code + "&Sid_Code=" + sid_code  + "&Prod_id=" + prod_id + "&Server_Name=" + server_name + "&Path_Info=" + path_info + "&Query_String=" + query_string;
}  

и вот ваш тег привязки:

< a href="javascript:void(0)" onclick="countClicks('POL','POL',6808,387,'www.princetonol.com','/index.cfm','x=x&at=no','http://www.polclients.com')">Link< /a>  

Таким образом, этот код откроет новую вкладку (с указанным вами URL) и после открытия вкладки window.location будет работать как обычно.Надеюсь, это поможет вам.

0 голосов
/ 26 января 2012

Попробуйте либо document.location.href, либо просто location.href.

Привет.Ваш код должен работать.Ну, я попробовал этот простой пример в браузере Safari, и он хорошо работает.Попробуйте сами.

<html>
<head>
<script language="JavaScript" type="text/JavaScript">
    function countClicks()
         { 
           window.location.href = "http://www.stackoverflow.com";
         }
</script>
</head>
<body onLoad=countClicks()>
</body>
</html>

Свойство привязки: К вашему сведению: я использовал window.open

<html>
<head>
<script language="JavaScript" type="text/JavaScript">
    function countClicks()
     { 
      window.open("http://stackoverflow.com", "_blank");
     }
</script>
</head>
<body>
<a href="#" name="xy" onclick="javascript:countClicks(this);">Visit StackOverflow Website</a>
</body>
</html>

Передача переменных из функции

<html>
<head>
<script language="JavaScript" type="text/JavaScript">
    function countClicks(a,b)
    { 
       window.open("http://stackoverflow.com?id="+a+"&id2="+b, "_blank");
    }
</script>
</head>
<body>
<a href="#" name="xy" onclick="javascript:countClicks(2,3);">test</a>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...