2014-03-26 43 views
0

我最近遇到了一個問題,當準備一個web應用程序在IE11中工作。我找到了一個可行的解決方案,但我寧願有一個很好的理由說明它爲什麼起作用,而不是猜測。從URL重定向時window.location中「/urlString.html」與「urlString.html」的區別是什麼?

我的問題是不正確的路徑(HTTP://本地主機:4724 /查看/完成),使用下面的JavaScript作爲退出頁:

window.location = "Exit.aspx?timeout=true"; 

這導致像一個URL所以在IE11中。注意額外/查看/:

HTTP://localhost:4724/View/Exit.aspx?timeout=true

在Chrome中它導致的正確網址:

HTTP://localhost:4724/Exit.aspx?timeout=true

我能夠通過使用window.location的,像這樣當包括一個斜槓來解決此問題:

window.location = "/Exit.aspx?timeout=true"; 

然後正確路線Chrome和IE11到的URL:

的http://本地主機:4724/Exit.aspx超時=真

什麼是IE11口譯不同的是,當我包含window.location字符串的正斜槓?

+0

我認爲IE11在這裏的行爲是正確的。沒有/這個url是相對於當前目錄而言的,在這個例子中,/ view類似於你對css的影像等等,不知道爲什麼Chrome會像你期望的那樣工作 – TommyBs

+0

是的,我發現奇怪的是,現在我可以更好地理解URL相對/絕對邏輯。現在我想我會調查爲什麼這個工作首先。 (我不是(完全)瘋狂的,我仍然可以通過控制檯使用chrome工作而不需要前導斜線)。 – Rapida

+0

好吧,不知道這會有助於任何人,但問題是圍繞使用相對基本標記。 Chrome瀏覽器似乎可以處理它,而IE11需要絕對基本標籤。 – Rapida

回答

3

前導斜槓表示絕對路徑,即相對於網站根目錄的路徑。如果沒有前導斜槓,則路徑相對於當前的 URL。

爲什麼它在不同的瀏覽器中表現不同,我不能說。

+0

這是我的懷疑,但是瀏覽器之間的不一致使我不知所措。 – Rapida

+0

如果您將'location.pathname'分配給它,這應該不成問題。 –

+1

[相關](http://stackoverflow.com/questions/10109360/js-window-location-relative-url) - 使用'window.location'作爲絕對路徑,'window.location.pathname'作爲相對值。 –

相關問題