取决于当前URL的条件重定向.通过html



(1(我的示例当前URL和参数是----www.example.com?fname=John&femail=john123@example.com

(2(通过html/JavaScript我想检查当前URL参数是否包含中的任何数据fname

(3a(接下来,如果不存在URL参数,则重定向到"www.example.com/error-page"或(3b(如果参数fname有一些数据(不需要任何数据验证(,意味着参数fname不为空,则应继续执行当前页面。

我成功地尝试了以下操作:

<!doctype html><html><head><body><div><p id ="dd"></p></div><meta charset="UTF-8"/><script type="text/javascript">var iid=document.getElementById("dd");var getURL=window.location.href;var theString = window.location.href;var theWord = "fname";var theWordExp = /fname/g;if (theString.search(theWordExp) == -1) { window.location.href=('www.example.com/error-page'); };</script></body></head></html>

说明:

  • "我想检查当前URL参数是否包含fname"中的任何数据

getQueryParam函数在这里解释如何获得"获取";在JavaScript中请求参数?

基本上,这与您使用locationhref解析params 的方法几乎相同

  • "如果不存在URL参数;否则继续,为此您只需要将其封装在div中,如果条件为false(已找到param(,则它将不会在if块(将用户重定向到错误页面的块(中运行语句

请注意,您还有许多其他选项要实现,请检查浏览器的兼容性,重定向行为也可以更改为替换最后一个历史页面,这样用户就不能使用window.location.replacement方法返回到引发错误的前一个URL

const getQueryParam = (name) => {
if (name = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)')).exec(location.search))
return decodeURIComponent(name[1]);
}
let fnameParam = getQueryParam("fname");
if (!fnameParam) {
window.location = "http://www.example.com/error-page";
};
<!doctype html>
<html>
<head>
<body>
<div>
<p id="dd"></p>
</div>
</body>
</head>
</html>

最新更新