js 页面自动跳转在safari下无效的解决方法

发布时间:2019-08-04编辑:脚本学堂
js做的页面的自动跳转,在safari下运行失败,不能自动跳转,后来找到了解决方法,特分享一下,供大家参考。

代码是这样的:
 

复制代码 代码示例:
<div align="center"> 
 <a href="test.php" target="mainFrame" id="actionTo" > 
 <img src="<s:url value='/images/buttons/return.gif'/>" border="0"></a> 
</div>

js代码:
 

复制代码 代码示例:
document.getElementById("actionTo").click();

直接得到ID为actionTo的控件对象,然后触发他的click事件。

在safari中不能跳转的原因:
由于Chrome和Safari中,a标签并不是和按钮一样有onclick()事件的,这个需要针对safari环境作特殊处理,js代码如下:
 

复制代码 代码示例:
if (/msie/i.test(navigator.userAgent)){ //ie brower 
     document.getElementById("actionTo").click(); 
}else{ 
   var e = document.createEvent('MouseEvent');    
   e.initEvent('click', false, false);    
   setTimeout(document.getElementById("actionTo").dispatchEvent(e),2000);    
}

这样就可以实现IE 和safari下都可以自动跳转了。

有关js页面跳转,有兴趣的朋友,可以阅读下脚本学堂之前发表的一些文章:
js跳转到上一页面失败的解决方法
js页面跳转 option location页面跳转的代码实例
js页面跳转方式 js页面跳转举例
js跳转页面方法

本文内容参考了:js模拟点击那些事 http://www.iteye.com/topic/1112772