Javascript 基于url的加载警报框脚本
我正在创建一个提交表单,将表单发送到一个php表单,表单完成后,将其重定向到初始页面,并在url中添加一个“?s=1”。 基本上,我试图做的是在加载url中带有“?s=1”的页面时创建一个弹出的警报框 我知道这是一种非常暴力的方法,但我似乎无法让小脚本正常工作。我知道一切都正常工作,加载到某个点,然后重新加载初始页面,其中包含?s=1 下面是我用来尝试和提示警报框的代码Javascript 基于url的加载警报框脚本,javascript,alert,Javascript,Alert,我正在创建一个提交表单,将表单发送到一个php表单,表单完成后,将其重定向到初始页面,并在url中添加一个“?s=1”。 基本上,我试图做的是在加载url中带有“?s=1”的页面时创建一个弹出的警报框 我知道这是一种非常暴力的方法,但我似乎无法让小脚本正常工作。我知道一切都正常工作,加载到某个点,然后重新加载初始页面,其中包含?s=1 下面是我用来尝试和提示警报框的代码 enter code here <script type="text/javascript"> v
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>
在此处输入代码
var Path=window.location.href;
如果(路径==“mywebsite.html?s=1”)
{
警告(“您的表单已提交。”)
}
else()
{
}
有人知道为什么盒子不会出现吗?或者可能是我尝试做的另一种方法?谢谢。
window.location.href
包含完整的URL,包括域和完整路径,因此除非您正确匹配,否则基本的相等性比较将不起作用,甚至这可能会导致问题(例如www.
与裸域的比较,https://
与http://
等)。一个可能的解决方案是使用正则表达式
var pathRegex = /mywebsite\.html\?s\=1/;
if (pathRegex.test(window.location.href)) {
alert("Your Form Has Been Submitted.")
}
需要注意的是,您可以有一个if
语句,而不附带else
,else语句不会在括号中包含任何参数,如if
,除非您谈论的是else if
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
{
}
下面是我为我的一个项目编写的一些代码,它允许您从url中提取参数和值
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];
}
}
}
非常感谢,可能是重复的。实现完美。我被抛出了一个没有html php或javascript背景的项目,并且一直在学习这些语言,但再次感谢您@falcons1112很高兴我能帮上忙:)不过,在你继续前进的过程中,你应该查看flash消息,这是一种更可靠、更易于扩展的向用户显示消息的方式。:)
var k = GetURLParameter('s');
if (k == 1){
alert("Your Form Has Been Submitted.")
}