JavaScript中的URL参数未更新

时间:2016-06-28 19:39:51

标签: javascript jquery html

我尝试在一个页面上创建一个URL参数,然后使用JavaScript在另一个页面上将其读回。一切都运作良好,直到我意识到一旦使用一个术语,同一页面就不会从编辑器更新到页面中使用的当前代码。例如,我使用了术语" dog"当我没有在页面中添加任何UI时。添加一些UI后,我使用相同的术语,没有更新任何内容。然后我尝试了另一个随机的术语,它显示了UI。

以下是第一页上的代码,该代码指向搜索页面:

function submitSearch(){
  var trm = document.getElementById("searchFld").value.toLowerCase();
  window.location = '/search.html?term='+trm;
}

这是第二页上的代码(函数加载被正文称为onload):

var getUrlParameter = function getUrlParameter(sParam) {
    var sPageURL = decodeURIComponent(window.location.search.substring(1)),
        sURLVariables = sPageURL.split('&'),
        sParameterName,
        i;

    for (i = 0; i < sURLVariables.length; i++) {
        sParameterName = sURLVariables[i].split('=');

        if (sParameterName[0] === sParam) {
            return sParameterName[1] === undefined ? true : sParameterName[1];
        }
    }
};

function load(){
var trm = getUrlParameter('term');

document.title = 'Search for "' + trm + '"';
}

希望我在解释中已经足够明确了......谢谢!

1 个答案:

答案 0 :(得分:0)

尝试使用以下内容:

function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}

function load(){
var trm = getParameterByName('term');
document.title = 'Search for "' + trm + '"';
}

window.onload = function() {
  load();
};

Source获取参数的代码。