我尝试在一个页面上创建一个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 + '"';
}
希望我在解释中已经足够明确了......谢谢!
答案 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获取参数的代码。