日期:2014-05-16  浏览次数:20267 次

Calendar5.js日历控件在IE8下点击右边滚动条即会报错的解决方法

    最近在项目中用到了网上很流行Calendar5 js日历控件,该控件在IE6,IE7,以及chrome和FF下均正常工作,但在IE8中只要一点击右边滚动条就会弹出一个脚本错误提示:“对象不支持此属性或方法”网上遍寻解决方案无果。
    最后本人在不熟悉js编程的情况下通过调试改写了Calendar5.js源文件中的第459行(不同的源文件略有偏差),解决了这个问题。
原代码:
//拖动日历开始
function dragStart(evt){

evt = evt || window.event;
var _target= evt.target || evt.srcElement;

if(_target.getAttribute("Author") == "alin_bar")
{
dragObj = getObjById("Calendar");
mouseOffset = getMouseOffset(dragObj, evt);
}
} 
改进后的代码:

function dragStart(evt) {

evt = evt || window.event;
var _target = evt.target || evt.srcElement;

if ((_target.nodeName != undefined) && _target.getAttribute("Author") == "alin_bar") 
{	   
dragObj = getObjById("Calendar");	   
mouseOffset = getMouseOffset(dragObj, evt);	 
}   
}

本文给和我一样不熟悉JS编程但被这个问题困扰的同行供参考,高手莫见笑。