2011-06-03 39 views
0

我有,我得到一個不同的重定向鏈接問題:Javascript重定向不同的鏈接;

我的代碼:

<script type="text/javascript"> 
      setTimeout(function() { 
      window.location.href = "<%= @link.link %>"; 
      }, 1000); 
</script> 

的@ link.link是:

<%= @link.link %> = http://tracking.euroads.dk/system/tracking.php?sid=1&cpid=3082&adid=544034&acid=4123&eatrackid=47402 

頁用戶獲得重定向爲:

http://tracking.euroads.dk/system/tracking.php?sid=1&amp;cpid=3152&amp;adid=551367&amp;acid=4123&amp;eatrackid=474027 

對應的網址:

http://tracking.euroads.dk/system/tracking.php?sid=1&cpid=3082&adid=544034&acid=4123&eatrackid=47402 

正如你所看到的那樣;而且不應該有不

我也曾經在頁面上此javascript:在此基礎上<%= @link.link %>

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"> 
<!-- 
function showProgressDots(numberOfDots) { 

    var progress = document.getElementById('progressDots'); 

    switch(numberOfDots) { 
     case 1: 
      progress.innerHTML = '.'; 
      timerHandle = setTimeout('showProgressDots(2)',200); 
      break; 
     case 2: 
      progress.innerHTML = '..'; 
      timerHandle = setTimeout('showProgressDots(3)',200); 
      break; 
     case 3: 
      progress.innerHTML = '...'; 
      timerHandle = setTimeout('showProgressDots(1)',200); 
      break; 
    } 
} 
window.setTimeout('showProgressDots(1)',100); 
//--> 
</SCRIPT> 
+0

您的鏈接正在爲HTML實體解析。所有&符號都被換出爲'&'。什麼是ASP?你應該考慮關閉解析器。無論鏈接何時生成。 – Stephen 2011-06-03 12:57:09

+0

分號來自'&',這是'&'&符號的url編碼形式。 – reporter 2011-06-03 12:57:28

回答

0

和您的用戶名我想你是使用Rails。

嘗試此行更改:​​

window.location.href = "<%= @link.link %>"; 

這個

window.location.href = "<%= raw @link.link %>"; 

您的網址是htmlencoded。這意味着您的&字符變成&amp;raw應該解決這個問題,我認爲

0

如果你on Rails的3使用Ruby,嘗試更換

window.location.href = "<%= @link.link %>"; 

window.location.href = "<%= @link.link.html_safe %>"; 
0

那麼,這並不能解決您的問題符號(見我以上評論)。但我無法放棄簡化該JavaScript功能的機會:

function showProgressDots(numberOfDots) { 
    var i, dots = '', progress = document.getElementById('progressDots'); 
    for (i = 1; i <= numberOfDots; i++) { 
     dots += '.'; 
    } 
    timerHandle = setTimeout(function() { 
     var increment = numberOfDots < 3 ? numberOfDots + 1 : 1; 
     progress.innerHTML = dots; 
     showProgressDots(increment); 
    }, 200); 
} 
window.setTimeout(function() { showProgressDots(1); },100);