Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript在整个站点中持久化搜索查询_Javascript_Html_Local Storage - Fatal编程技术网

JavaScript在整个站点中持久化搜索查询

JavaScript在整个站点中持久化搜索查询,javascript,html,local-storage,Javascript,Html,Local Storage,我当前正在获取一个查询(例如,http://localhost:49781/HTML/index.html?inputName=Marcus)从html表单中使用以下JavaScript: function setSignedName() { if (window.location.search.indexOf("=") >= 0) { var split = window.location.search.split("="); document.g

我当前正在获取一个查询(例如,
http://localhost:49781/HTML/index.html?inputName=Marcus
)从html表单中使用以下JavaScript:

function setSignedName() {
    if (window.location.search.indexOf("=") >= 0) {
        var split = window.location.search.split("=");
        document.getElementById("signed_in_name").innerHTML += split[1];
    } else {
        document.getElementById("signed_in_name").innerHTML = "Not signed in";
    }
运行脚本将得到结果:Marcus

我希望这个字符串在我的站点中保持不变,所以当用户导航到另一个页面时,inputName仍然是Marcus

实现这一目标的最佳方式是什么


编辑:这种方法仅用于显示/非生产用途,我知道使用像PHP这样的服务器端语言是最好的方法

您可能希望通过服务器端语言中的GET参数重新填充它,或者如果您希望将其组合在一起,请使用cookie并在页面加载时使用JavaScript以“pushState”重新填充它


我认为最好的方法是使用。它具有以下优点,而且易于使用:

function setSignedName() {
    var userName = "";

    if (window.location.search.indexOf("=") >= 0) {
        var split = window.location.search.split("=");
        userName += split[1];
    } else {
        userName = "Not signed in";
    }

    document.getElementById("signed_in_name").innerHTML = userName;
    localStorage.setItem("userName", userName);
}
要访问它:

var userName = localStorage.getItem("userName");

就是这样。在fav broswer中开发者工具(F12)的“资源”选项卡中查看它。

尝试使用本地存储是的,我知道使用服务器端语言是最佳选择,但这严格适用于显示/非生产用途。我试试这个,谢谢。