簡體   English   中英

Javascript window.location腳本不斷重新加載

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM