window.location.href 不起作用
window.location.href does not work
我有下面的java脚本函数,我想将页面重定向到另一个页面。我验证了警报功能显示"Got"消息。因此,可以正确调用该函数。但是,使用 window.location.href 的页面重定向不起作用。此外,打印选项,vDaeId,dgpId内容的警报功能没有执行(我在浏览器中没有看到弹出窗口(。你能告诉我这段代码有什么问题吗?谢谢。顺便说一句,我正在使用火狐
。 function goToPMDisplayer(){
alert('Got ');
var option=document.getElementById("D1").value;
var vDaeId=document.getElementById("D2").value;
var dgpId=document.getElementById("dgpids").value;
var str= option + " "+ vDaeId + " "+ dgpId
alert(str);
window.location.href="display.jsp?option="+option + "&vdaeid=" + vDaeId + "&dgpid=" + dgpId
}
你说第一个警报有效,第二个警报无效,这意味着其中一行有 javascript 错误:
var option=document.getElementById("D1").value;
var vDaeId=document.getElementById("D2").value;
var dgpId=document.getElementById("dgpids").value;
最有可能的罪魁祸首是这些元素之一不存在,尝试访问null
.value
将引发异常。
此外,打印选项,vDaeId,dgpId内容的警报功能没有执行(我在浏览器中没有看到弹出窗口(。
这告诉我们代码因引发异常而失败。我的猜测是,你没有至少一个你依赖的元素(D1
、D2
或dgpids
(。所以document.getElementById
返回null
,当你尝试访问它上面的.value
时,你会得到一个异常。
请注意,与 getElementById
一起使用的字符串必须是id
值,而不是 name
s。因此,您必须对一个元素进行id="D1"
,id="D2"
对另一个元素进行id="dgpids"
。另请注意,id
值可以区分大小写,并且它们在页面上必须是唯一的。(如果你搞砸了最后一条规则,大多数浏览器会按文档顺序给你第一个,但是......
我假设您在页面完全加载之前不会调用goToPMDisplayer
,但是如果您在页面加载期间调用它,请确保在元素存在之前不会调用它(例如,将文档中对它的调用放在比元素更低的位置(。
对于这样的问题,alert
式调试几年前就消失了。在 2012 年,我们使用适当的调试器。如今,所有主流浏览器都内置了一个,甚至是IE。您可以设置断点、遍历代码、检查 DOM 的当前状态...简而言之,无需在黑暗中摸索;你可以照亮正在发生的事情。
在对这个问题的评论中,你说
我验证了所有事物的存在。
恕我直言,我只是不明白这是怎么回事。我怀疑id
值略有不同,或者它们根本没有id
值,而是具有name
值。
下面是一个完整的工作示例:实时复制 | 源
<!DOCTYPE html>
<html>
<head>
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<meta charset=utf-8 />
<title>Test Page</title>
<style>
body {
font-family: sans-serif;
}
</style>
</head>
<body>
<input id="D1" value="valueOfD1">
<input id="D2" value="valueOfD2">
<input id="dgpids" value="valueOfdgpids">
<br><input id="theButton" type="button" value="Click Me">
<script>
function goToPMDisplayer(){
alert('Got ');
var option=document.getElementById("D1").value;
var vDaeId=document.getElementById("D2").value;
var dgpId=document.getElementById("dgpids").value;
var str= option + " "+ vDaeId + " "+ dgpId
alert(str);
var loc = "display.jsp?option="+option + "&vdaeid=" + vDaeId + "&dgpid=" + dgpId
alert("loc = " + loc);
}
document.getElementById("theButton").onclick = goToPMDisplayer;
</script>
</body>
</html>
- Javascript-将变量传递给php页面,window.location.href不起作用
- 使用 Div 标签的 location.href 属性时,Eval 不起作用
- 使用self.location.href重定向不会'不起作用
- 检查window.location.href.indexOf是否'不起作用
- JS:数据href中指定的链接在转盘中不起作用
- 点击 href 事件不起作用
- 我的 href 点击事件不起作用
- 当在 img 标签中提到类时,Href 不起作用
- jQuery this.href 字符串比较不起作用
- 使用 href=“#” JQuery 工作,但使用 href=“page.jsp” 不起作用
- window.location.href 在 Meteor 中不起作用
- 输入框上的 Href 不起作用
- JavaScript window.location.href 不起作用
- window.location.href 不起作用,无法重定向
- ng-href 从 JSON 打开页面在应用程序中不起作用
- Javascript在href中工作,但在JS文件中不起作用
- 带有 onclick 的 href 在 Safari 中不起作用
- 在 mvc 应用程序中使用 href 属性重定向 asp.net 不起作用
- 为什么ajax不起作用,除非我刷新或使用location.href
- 使用变量的 Href 属性不起作用