(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>