在HTML链接中声明JavaScript变量

Declaring JavaScript variables in a HTML link

本文关键字:JavaScript 变量 声明 HTML 链接      更新时间:2023-09-26

假设我有一个简单的HTML文档,其中包含以下内容:

<a href="results.html"> cake </a>
<a href="results.html"> pie </a>

results.html包含一个变量,该变量需要在Javscript中声明为第一个链路为100,第二个链路为200,依此类推

我有没有办法让它在你点击第一个链接时打开results.html,javascript变量设置为cake,第二个打开results.html,变量设置为pie,依此类推?

您可以在查询字符串中传递它们。例如:

<a href="results.html?result=cake"> cake </a>
<a href="results.html?result=pie"> pie </a>

在results.html页面中,您可以获取并解析查询字符串。例如:

var queryStr = window.location.search.substring(1);
var params = parseQueryStr(queryStr);
console.log(params["result"]);
var parseQueryStr = function(queryStr) {
    var params = {};
    var queryArray = queryStr.split("&");
    for (var i = 0, var l = queryArray.length; i < l; i++ ) {
        var temp = queryArray[i].split('=');
        params[temp[0]] = temp[1];
    }
    return params;
};
<a href="results.html?keyword=cake"> cake </a>
<a href="results.html?keyword=pie"> pie </a>

在results.html:中

<script type="text/javascript">
    function getQueryParams(qs) {
        qs = qs.split("+").join(" ");
        var params = {}, tokens,
            re = /[?&]?([^=]+)=([^&]*)/g;
        while (tokens = re.exec(qs)) {
            params[decodeURIComponent(tokens[1])]
                = decodeURIComponent(tokens[2]);
        }
        return params;
    }
    var query = getQueryParams(document.location.search);
    alert(query.keyword);
</script>