window.location.href 点击无反应 不跳转的解决

今天写一个页面,进行window.location.href跳转传值,结果发现在极速模式下不起作用,搜索后找到解决方法,因为我的与他的略为不同,所以两个都进行记录。

window.location.href不跳转原因

满足以下四个条件之一,都不会进行跳转。
IE6 浏览器
事件绑定在a 标签且链接为或为“javascript:;”或为“javascript:void(0);

解决window.location.href不跳转

自己window.location.href不跳转解决

  • 当前页面中使用了点击链接后提交数据的方式
<a class="del" href="">删除</a>
  • 页面底部进行了jQuery跳转
<script>
			$(function()
			{
				$('.del').on('click',function(){
					var idObj = $(':checkbox:checked'); //获取全部被选中的checkbox
					var id = ''; //接收处理的部门id值,组成id1,id2,id3...
					for(var i=0; i<idObj.length; i++)
					{
						id += idObj[i].value +',';
					}
					id = id.substring(0,id.length-1);
					//带着参数跳转到del方法					
					location.href = '__CONTROLLER__/del/id/'+id;
				});
			});
		</script>
如上面的是根本不会跳转的,所以我按照搜到的方法进行代码添加,发现成功解决了跳转,下面为修改后的:
  • 原a链接的href为空,现在改为javascript:;。
<a class="del" href="javascript:;">删除</a>
  • jQuery也添加一行,即跳转的下面加上return false;,未添加前IE下无法跳转,添加后IE下也能成功跳转。
<script>
			$(function()
			{
				$('.del').on('click',function(){
					var idObj = $(':checkbox:checked'); //获取全部被选中的checkbox
					var id = ''; //接收处理的部门id值,组成id1,id2,id3...
					for(var i=0; i<idObj.length; i++)
					{
						id += idObj[i].value +',';
					}
					id = id.substring(0,id.length-1);
					//带着参数跳转到del方法					
					location.href = '__CONTROLLER__/del/id/'+id;
					return false;
				});
			});
		</script>

搜到的window.location.href不跳转解决方法

<a href="javascript:void(0);" onclick="modify();">修改</a>
<script>
function modify(){
window.location.href = "http://www.xiuyuanxi.com"
}
</script>
  • 上面代码不跳转,解决方法
<a href="javascript:void(0);" onclick="modify();return false;">修改</a>
//或
<a href="javascript:modify();">修改</a>
上面解决的方法是在onclick事件中加return false来阻止冒泡,同理IE6下onclick事件失效可以尝试加return false来解决问题。

评论

大侠名号:   验证码: 点击我更换图片  

修远兮

在这里记录每一点自己需要的知识

添加创始人微信,一起交流心得

推荐文章RECOMMEND