2017-06-30 64 views
0

我有下面的代碼window.location.href不被修改

var windowHref = window.location.href; 
    if (windowHref.includes('/project/')) { 
     var splitURL = windowHref.split('/'); 
     window.location.href = windowHref.substring(0, windowHref.indexOf('#/project')) + '?projectId=' + splitURL[splitURL.length - 2]; 
    } 
    window.location.reload(true); 

的上面的代碼執行前,中window.location.href

https://localhost:44301/default.aspx#/project/16a76abd-5b5b-4c63-822f-2bfd7f133adc/home

和執行後,我想它的值要像

https://localhost:44301/default.aspx?projectId=16a76abd-5b5b-4c63-822f-2bfd7f133adc

但當線

window.location.href = windowHref.substring(0,windowHref.indexOf('#/project')) + '?projectId=' + splitURL[splitURL.length - 2];

被執行時,window.location.href保持不變。

windowHref.substring(0,windowHref.indexOf('#/project')) + '?projectId=' + splitURL[splitURL.length - 2];

結果是

https://localhost:44301/default.aspx?projectId=16a76abd-5b5b-4c63-822f-2bfd7f133adc

我在做什麼錯?

+0

有一些PHP或JavaScript,與'$ _GET' URL工作,這改變了它? – PHPglue

+0

不,沒有。 –

回答

0

我建議刪除行window.location.reload(true);,因爲它是不必要的重定向客戶端新頁面使用window.location.href時

var href = window.location.href; 
var index = href.indexOf('#/project/'); 
if(index!==-1){ 
    var splitURL = href.substring(index,href.length).replace('#/project/','?projectId=').split('/'); 
    window.location.href = splitURL[0]; 
} 
+0

我需要這個重定向到修改後的URL。您能否建議我重定向到所需的網址'https:// localhost:44301/default.aspx?projectId = 16a76abd-5b5b-4c63-822f-2bfd7f133adc' –

+0

window.location.href將重定向到您分配給它的URL。所以基本上你的代碼應該工作..我假設如果你刪除了window.location.reload行,並且如果你的URL包含'/ project /',你的代碼應該做你正在尋找的東西。 plus based on information on https://www.w3schools.com/jsref/jsref_includes.asp使用JS字符串的「包含」功能,您的瀏覽器必須支持它。 – Fered

+0

即使在刪除它之後,「window.location.href」也沒有被分配新的值。 –