2014-03-31 66 views
6

您好我正在創建一個angularjs應用程序。我將$ locationProvider.html5Mode設爲true。現在我得到沒有#的漂亮的網址。它在Chrome和Firefox中工作正常。但是當我試圖在IE 9中打開它時,它會不斷重新加載。

+0

可能重複的[AngularJS如何刪除#符號在IE9中使用路由](http://stackoverflow.com/questions/17829991/angularjs-how-to-remove-symbol-in-ie9-by-using-路線) – bookthief

+0

看看這個http://stackoverflow.com/questions/17829991/angularjs-how-to-remove-symbol-in-ie9-by-using-route – bookthief

回答

11

壞消息。 IE9不支持HTML5 History API。這就是html5Mode使用的角​​色。如果你需要你的應用程序上運行的IE9你需要切換或添加代碼來檢測,如果歷史API可使用的或默認的哈希

function supports_history_api() { 
    return !!(window.history && history.pushState); 
} 

我知道。愚蠢的IE瀏覽器。它應該死於一個痛苦的死亡。

+0

嗨,現在它正在爲IE9工作,把這個條件。但是這種情況在Android瀏覽器中返回並存在舊的問題。 –

+0

android上有什麼版本? –

+0

我的版本是android 2.3 –

3

$位置文檔

見 「Hashband和HTML5模式」

基本上,HTML5模式使用歷史API時,瀏覽器支持它,並回落到時不支持它hashbang(#)。

你不能只在沒有歷史API的瀏覽器中刪除「#」。因爲當您更改網址時,瀏覽器會嘗試強制重新加載,從而中斷流程。