最近许久没来这里了,看他人文章看多了,偶尔也想闲扯一下,但是发现自己能力还是稍有不足的哈。许久没来并不能表明啥,因为生活不止有这里这一个平台。
今天机缘巧合之下遇到了个人认为比较经典的“IE无法打开Internet 站点…… 已终止操作”的问题。
之所以说机缘巧合,意思是各种因素促成了这个事件,缺一不可。几个因素分别是:系统中的ie是ie6(具体的小版本之间的差别我不是很确定or清楚)、编写jsp页面且用开发工具自动生成的jsp源码、使用了WdatePicker.js这个时间控件(并不是说这个js库有问题)、以及页面代码的一些书写顺序。
之所以说经典,很明显,从上面的巧合中可以看出来了,ie6绝对是经典了。
全部测试代码如下(除要引用的控件相关文件外)
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html> <head> <base href="<%=basePath%>"/> <title></title> <script src="js/My97DatePicker/WdatePicker.js" type="text/javascript"></script> </head> <body></body> </html>
运行访问就会发生如下情况:(注:要在特殊条件下哦!!!)
已知解决方案:
Method 1:去掉<base ……>代码,如果你用不到的话
Method 2:补全<base>的结束标签,必须在后添加</base>,而不是<base …… />
Method 3:将<base ……>代码放到<script src="js/My97DatePicker/WdatePicker.js" type="text/javascript"></script>之后
PS&注意:ie6缓存方面问题比较严重,测试时需要及时清理下临时文件,不然会让你产生幻觉的!!!
具体原因?我怎么知道…… 我只是了解到了表面问题罢了,网上有大神们的相关文章,可以根据本文提到的一些关键字搜索下,靠你了!!!