[英]Javascript: window.location reloads the same page in which script is written
[英]Javascript window.location script keeps reloading
我正在嘗試創建一個小型Web應用程序,該應用程序通過Javascript更新URL中的2個參數。
當我嘗試"window.location.search = 'scene.html?name=' + person + '&scene=' + readCookie("scene");"
頁面不斷重新加載。 我試圖在每次“加載”頁面時將當前的“場景”參數分配給一個遞增的值。
為什么我的頁面永久重新加載null和undefined值?
當您更新window.location
,瀏覽器將嘗試請求您現在將其設置為的新URL。
如果要在不重新加載頁面的情況下更新URL ,則有兩種選擇,一種是僅更新hash
(可以添加到URL末尾並以#
字符開頭的部分),不會導致頁面加載,也不會發送到服務器。 或者您可以考慮使用HTML5 pushState API ,該API僅受較新的瀏覽器支持,但提供了更大的靈活性。
如果要更新兩個參數,那么就足夠了:
window.location.search = '?name=' + person + '&scene=' + readCookie("scene");
也就是說,您不需要添加scene.html
"window.location.search" is the content of the current url after '?'.
因此,當您為它分配另一個值時,瀏覽器將對其進行更新並將請求發送到服務器。
首先,我不了解您為什么要這樣做。
每當您更改window.location時,瀏覽器都應該去那里。 這就是為什么獲得重載效果的原因。無需重載就可以從位置更改的唯一內容是哈希(#)部分。
您可以做的另一件事是,使用pushState 處理瀏覽器的歷史記錄 (僅最新版本支持),並在不重新加載的情況下更改url(服務器也不會知道更改),例如: window.history.pushState({},"","scene.html?name=123");
另請注意,由於您更改了位置的搜索屬性,因此不應包含路徑名(scene.html)。 因此正確的方法是: window.location.search = '?name=' + person + '&scene=' + readCookie("scene");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.