2011-10-24 47 views
0

我寫了這個jQuery代碼:重定向到jQuery的另一個頁面在IE,但不火狐,Safari

<script type="text/javascript"> 
    $.ajax({   
     url: "http://www.mysite.com/login.aspx", 
     context: document.body, 
     success: function(html) { 
      $('body').append(html); 
     } 
    }); 
</script> 

它可以在IE瀏覽器中,它的成功重定向,但什麼也沒有發生在Firefox和Safari。

爲什麼?

+3

定義「不工作」,會發生什麼? – OptimusCrime

+0

什麼也沒有發生在Firefox,但在IE重定向成功:( – Freeman

回答

1

嘗試$('body').html(html)代替。你應該使用append和已經解析過的html(即,包裝爲jQuery對象)。

但是,一般情況下,如果你想只做readirect,並且你不關心位置欄中的url是什麼 - 使用正常的重定向(document.location = 'url')。

如果你想用ajax替換頁面內容,通常最好不要替換整個body,而只是內部的一些container div。

+0

+1同意重定向,並且也感謝解釋替代。大概麥克替換整個身體,因爲登錄後一切都變了,這是有道理的,但它可能也意味着傳統的重定向是更簡單。 – stivlo

+1

在我們當前的系統中,我們希望每次都保持相同的url,所以這就是爲什麼在登錄後我們要替換所有可見的東西(即'div#container') - 但是我們想要保留'container'之外的東西仍然很少。順便說一句,我們還是註銷後執行完全重定向,只是爲了安全起見 –

+1

嘗試刪除'背景:document.body的,',使用HTML(),而不是追加()和(如已經建議的),不使用body,而是使用container div。您也可以嘗試刪除腳本的完整路徑。 – OptimusCrime

3

你試圖使用Ajax調用重定向到另一個網頁?爲什麼不直接使用document.location = 'wherever.htm'

+0

不知道什麼1.海報試圖在這裏做的,但如果它只是重​​定向到另一個頁面;這是要走的路使用jQuery,應改爲'$ (文件).location' – OptimusCrime

相關問題