今天碰到了一个奇怪的问题,就是页面的自动跳转,用js做的,在ie下运行没有问题,但是在safari下运行就有问题,不自动跳转,具体代码如下:
<div align="center"> <a href="test.jsp" target="mainFrame" id="actionTo" > <img src="<s:url value='/images/buttons/button-return.gif'/>" border="0"></a> </div>
js代码是这样写的:document.getElementById("actionTo").click();
这样直接得到ID为actionTo的控件对象,然后触发他的click事件
在网上搜了下关于,发现是由于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下的自动跳转啦!
具体的可以参考这篇博文: