全部博文(2065)
分类: 系统运维
2009-08-14 15:44:06
WdatePicker在JSP中的怪异解决
时间:
我一直都是使用这个控件感觉非常好用。而且用起来也比较爽。在Django、ASP、PHP里面使用都是正常的。今天我在开发一个JSP项目的时候将其应用进来发现弹出:IE无法打开站点。咦。奇怪了~~~
上GOOGLE了一下。找到一个网友写的文章成功解决我的问题在此非常感谢这位朋友。
解决的办法:
JSP页面中如果使用了<base href="<%=basePath%>"> 要知道我的JSP页面我非常喜欢使用这个东西的。因为它成功解决了我的路径问题。
如果你使用了这个东西那我们引入JS的方法就得换成这样:
<script language="javascript" type="text/javascript" src="../js/My97DatePicker/WdatePicker.js"
>script>
<base href="<%=basePath%>">
看到没有。得先引入 再写 base哈哈!
通过这种办法我成功解决我的问题。GOOGLE!!!!!
其他的内容我也摘进来一下:(见下文)
使用过程中我碰到的最棘手的一个问题,在frame框架中调用这个控件时老是探出“无法打开站点,已终止操作?”消息框,很长一段时间我都素手无策,最后才找到下面的方法,官网也有,综合下:
1、IE6中使用时,如果有 base target标签 必须在日期控件载入后设置
即
2、在标签中加上defer="defer"
3、将放在页面后面
4、将放在页面后面
5、这是一个绝对有效的方法,但是会丢失跨越iframe的特性,把WdatePicker.js里面的$crossFrame改成false
问题:如题,第一次打开报此错误,再点连接打开,则正常
原因:页面还没执行完,就运行了其他的js脚本(WdatePicker)
解决方法:给js脚本添加defer属性,并设置为defer
defer说明:
中defer的作用
使用defer属性可以让脚本在整个页面装载完成之后再解析,而非边装载边解析。
这对于只包涵事件触发的js脚本而言,可以提高整个页面的加载速度。
DEFER是脚本程序强大功能中的一个“无名英雄”。你可能从没有使用过它,但是看完这里的介绍后,相信你就离不开它。它告诉浏览器Script段包含了 无需立即执行的代码,并且,与SRC属性联合使用,它还可以使这些脚本在后台被下载,前台的内容则正常显示给用户。
最后请注意两点:
1、不要在defer型的脚本程序段中调用document.write命令,因为document.write将产生直接输出效果。
2、而且,不要在defer型脚本程序段中包括任何立即执行脚本要使用的全局变量或者函数。
3. 如果不显式声明 defer ,则其默认值
是false
心得:
1、 如果我定义的JS里面只包含事件触发的JS的话我就可以将其定义出来defer提高加载速度。
2、 成功解决我的JSP的问题哈哈