JavaScript会在整个网站中保留搜索查询

时间:2014-11-17 19:30:44

标签: javascript html local-storage

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

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这样的服务器端语言是最好的方法。

2 个答案:

答案 0 :(得分:0)

您希望通过服务器端语言中的GET参数重新填充它,或者如果您想要将它们一起破解,请使用Cookie并在页面加载时使用JavaScript重新填充它" pushState&#34 ;

https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history#The_pushState()_method

答案 1 :(得分:0)

我认为最好的方法是使用localStorage。它works in all major browsers并且易于使用:

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");

就是这样。在您的收藏夹中的开发人员工具(F12)的“资源”选项卡中检查它。