我正在创建一个提交表单,将表单发送到php表单,并在表单完成后重定向到初始页面,并在URL中添加“?s = 1”。 基本上我要做的是在加载页面时弹出一个警告框,其中“?s = 1”在网址中。
使用我知道这是一种非常强力的方法,但我似乎无法使小脚本正常工作。我知道确定一切正常并加载到该点并重新加载初始页面,其中包含?s = 1。
以下是我用来尝试提示警告框的代码
enter code here <script type="text/javascript">
var Path = window.location.href;
if (Path == "mywebsite.html?s=1")
{
alert("Your Form Has Been Submitted.")
}
else()
{
}
</script>
有人知道为什么盒子不会出现吗?或者可能是我试图做的另一种方法?感谢。
答案 0 :(得分:2)
window.location.href
包含完整的网址,包括域名和完整路径,因此基本的平等比较无法正常工作,除非您对其进行匹配,甚至可能会导致问题(例如www.
与裸域,https://
与http://
等)。可能的解决方案是使用RegEx。
var pathRegex = /mywebsite\.html\?s\=1/;
if (pathRegex.test(window.location.href)) {
alert("Your Form Has Been Submitted.")
}
作为备注,您可以使用if
语句而不附带else
,否则语句不会在if
等括号中删除任何参数,除非您&#39 ;谈论else if
。
答案 1 :(得分:1)
以下是我为我的一个项目编写的一些代码,可以让您从网址中提取参数和值。
function GetURLParameter(urlParameter){
var url = window.location.search.substring(1);
var urlVariables = url.split('&');
for (var i = 0; i < urlVariables.length; i++){
var parameter = urlVariables[i].split('=');
if (parameter[0] == urlParameter){
return parameter[1];
}
}
}
它易于使用:
mywebsite.com?s=1
它只是
var k = GetURLParameter('s');
if (k == 1){
alert("Your Form Has Been Submitted.")
}
答案 2 :(得分:0)
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
然后检查......
if (getParameterByName("s")=="1")
{
alert("Your Form Has Been Submitted.")
}
else
{
}