My97的WdatePicker({dateFmt:'yyyy-MM'})兼容ie9
问题:My97在ie9格式化WdatePicker({dateFmt:'yyyy-MM'})出现都是1的情况,如下图:
针对的JS版本:My97 DatePicker 4.72 Release
原因:在 IE9 中,dom 节点宽高不知道为什么变成了 0,所以年月被隐藏了,只要想办法设置好宽高就可以正常显示了
解决办法:在$dp.dd.style.left=F+"px";的后面添加上下面代码即可,如果是不同的版本可能不一样,
不一样的地方包括变量名称(如:$dp.cal和$dp.dd)和dom节点的位置(如:childNodes[1],下面的是childNodes[2])
;var userAgent = navigator.userAgent; var reIE = new RegExp("MSIE (\\d+\\.\\d+);"); reIE.test(userAgent); var fIEVersion = parseFloat(RegExp['$1']); if ($dp.cal != undefined) { if (fIEVersion == 9 && $dp.cal.dateFmt == 'yyyy-MM') { try { var ifr = $dp.dd.childNodes[0].contentWindow.document.childNodes[0].childNodes[1].childNodes[2].childNodes[1]; if (ifr) { ifr.style.width = '180px'; ifr.style.height = '141px' } } catch (o) { } } }
最后的实现效果,太完美了<^_^>: