欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

My97 DatePicker日历控件在火狐或IE下打不开

发布时间:2025/7/25 编程问答 68 豆豆
生活随笔 收集整理的这篇文章主要介绍了 My97 DatePicker日历控件在火狐或IE下打不开 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

title: My97 DatePicker日历控件在火狐或IE下打不开 date: 2018-02-05 22:29:07 categories: javascript tags: Firefox

如果有使用My 97 DatePicker日历控件的话,在项目中可能会遇到一个BUG,如果自身项目有使用use strict严格模式的话,在Firefox或IE11下弹不开日历窗口。

简单介绍

打开Firefox控制台,可以看到如下报错:

TypeError: access to strict mode caller function is censored. 复制代码

是在严格模式下使用了caller,该属性在MDN web docs有注明:

该特性是非标准的,请尽量不要在生产环境中使用它!

修复方式

该BUG官方在My97 DatePicker 4.8 Release [2017-7-30]中已修复。如不升级,可在旧版本做如下修改:

  • 找到源码中的WdatePicker.js文件
  • 找到如下代码(变量名可能不同,可以搜索caller字段,全文仅两处):
  • function D(){if(G){func=D.caller;while(func!=null){var $=func.arguments[0];if($&&($+"").indexOf("Event")>=0)return $;func=func.caller}return null} 复制代码
  • 将if(G){...}中...处代码用try-catch包裹,如下:
  • function D(){if(G){try{func=D.caller;while(func!=null){var $=func.arguments[0];if($&&($+"").indexOf("Event")>=0)return $;func=func.caller}}catch(e){}return null} 复制代码

    该解决方案仍源自官方在4.8版本的解法。

    原文链接:My97 DatePicker日历控件在火狐或IE下打不开

    转载于:https://juejin.im/post/5ab91544f265da237a4d0557

    《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

    总结

    以上是生活随笔为你收集整理的My97 DatePicker日历控件在火狐或IE下打不开的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。