`

my97 datepicker的'$db.cal'为空或不是对象问题解决参考

阅读更多

前言:

原来项目只有一个域名,一个包,后来种种原因要和其它的一个应用柔和,将自己的应用作为iframe嵌入到另一个应用,自己应用的日期控件用的是My974.5版本,完成嵌入后日期控件图片,输入框什么的都能正常显示,就是点击控件时出现该日期控件报 $db.cal'为空或不是对象 的js问题。

 

问题分析:

根据报错的显示,可能是由于找不到对应的JS资源,但查找了一下自己应用的My97DatePicker目录结构,一直没动过,唯一可能的问题就是My974.5内部调用JS对象的路径时可能会和iframe相关。

 

DEMO示例:

为了很好的展示问题和分析问题,做了两个小应用来重现该问题。附件1是两个小应用,app1和app2。其中app2中用到了my97datepicker,app1中没有。

使用方法:分别将这两个应用部署在自己电脑上的两个TOMCAT中,app1的server端口设置为9090,app2的server端口设置为8080,然后启动这两个tomcat,在地址栏输入http://localhost:9090/app1/html/demo_iframe1.html,点击页面上的日期控件即可发现上述问题报错。

 

原因分析:

用httpwatch工具查看该DEMO的工作流程,发现有404的请求,如下截图

demo

可见9090下是没有app2应用的,该应用是在8080下,而在这之前的请求都没有问题,所以就需要具体分析my97的js加载中的有关路径的操作了。

将my97的核心JS文件WdatePicker.js稍微格式化一下,然后调试测试,发现主要是由于my97为了解决iframe的问题,添加了一个属性$crossFrame : true,意识就是跨FRAME的设置,而这个设置为TRUE以后,核心对象V就由WINDW对象变成了WINDOW.PARENT对象了,这样后续的K(E, $)函数中构建var B时应用的路径_.$dpPath就变成了父框架的域名和子应用的应用名拼接,具体的拼接方法参见L()方法和F(F)方法等。

 

解决办法:

1:在app1所在的tomcat建立一套app2的应用,其中只包含my97datepicker的目录结构,其它的都不要,因为只涉及到访问my97datepicker的相关资源。

2:修改WdatePicker.js的K(E, $)方法和相关的方法,在var B构建之前,将路径修改过来,这个不太好改,地方比较多,而且涉及到版权问题,各位还是用第一种方法吧,简单实用。

 

  • 大小: 97.1 KB
分享到:
评论

相关推荐

    My97DatePicker包(WdatePicker.js文件加了详细备注)

    My97DatePicker目录是一个整体,不可破坏里面的目录结构,也不可对里面的文件改名,可以改目录名 My97DatePicker.htm是必须文件,不可删除(4.8以后不存在此文件) 各目录及文件的用途: WdatePicker.js 配置文件,在调用的...

    My97DatePicker.rar

    《My97DatePicker:高效易用的前端时间插件》 在Web开发中,日期和时间选择器是一个不可或缺的组件,它为用户提供了方便的方式来输入和选择日期或时间。My97 DatePicker是一款广受欢迎的JavaScript时间插件,以其...

    My97DatePicker及demo.rar

    在实际项目中,开发者可能需要结合Spring MVC、Struts2等框架,将My97DatePicker的日期值绑定到模型对象上,以便进行后续的业务处理。 在压缩包"My97DatePicker及demo.rar"中,可能包含了My97DatePicker的源码、...

    MY97datepicker.rar

    《MY97DatePicker:一款备受青睐的JavaScript日期选择器组件》 在网页开发中,日期选择器是一个不可或缺的元素,它使得用户能够方便地输入或选择日期,提升了用户体验。MY97DatePicker是一款广受欢迎的JavaScript...

    日历控件my97datepicker

    My97DatePicker目录是一个整体,不可破坏里面的目录结构,也不可对里面的文件改名,可以改目录名 My97DatePicker.htm是必须文件,不可删除 各目录及文件的用途: WdatePicker.js 配置文件,在调用的地方仅需使用该文件 ...

    My97DatePicker4.7.2.rar

    My97DatePicker是一款广泛应用于网页开发中的JavaScript日期选择器控件,它的版本4.7.2在业内得到了广泛应用。这个控件以其强大的功能、灵活的定制性和良好的用户体验而备受青睐。接下来,我们将深入探讨My97...

    My97DatePicker.zip

    《My97DatePicker:一款基于jQuery的高效日期选择器组件》 在网页开发中,日期选择器是一个不可或缺的元素,它极大地提升了用户交互体验。My97 DatePicker 是一个基于 jQuery 的强大日期选择器插件,它以其易用性、...

    My97DatePicker

    在网页开发中,日期和时间的选择常常是一项必不可少的功能,而My97 DatePicker则是一款高效、易用且功能丰富的JavaScript时间插件,专为网页设计者提供日期选择解决方案。这款插件以其直观的用户界面和灵活的配置...

    My97DatePicker_时间控件

    在提供的资源中,`My97 DatePicker.doc`文档可能包含了详细的API参考和使用教程,帮助开发者更好地理解和使用这个控件。`My97 DatePicker 4_0 演示.mht`文件则是一个演示示例,通过实例展示了My97 DatePicker的各种...

    My97DatePicker详解

    【My97DatePicker详解】 My97DatePicker是一款广泛使用的JavaScript日期选择控件,适用于网页中的日期输入场景。它提供了一种方便、灵活的方式来选择日期,兼容多种浏览器,包括IE 6.0+、Firefox 2.0+、Chrome、...

    My97DatePicker.htm

    《My97DatePicker详解——一款强大的...无论是在简单的日期输入,还是在复杂的日期处理场景中,My97DatePicker都能提供有效的解决方案。理解并掌握My97DatePicker的使用,无疑能提升开发效率,提高项目的用户体验。

    My97DatePicker(几种日历控件/js/实例演示)

    My97DatePicker是一款广泛使用的JavaScript日期选择器控件,它为网页中的日期输入提供了便捷的交互体验。这个控件以其高效、易用和高度可定制性而受到开发者的青睐。在网页开发中,日期选择器通常用于用户输入日期时...

    My97DatePicker.chm

    My97DatePicker 日期控件的chm文档 API My97日期控件chm帮助文档

    My97 DatePicker 4.8 官方标准资源

    My97 DatePicker 4.8 官方标准资源 在页面中引入该组件js文件即可: <script type="text/JavaScript" src="My97DatePicker/WdatePicker.js"></script>

    My97DatePicker3.0日历控件

    总结,My97 DatePicker3.0作为一款强大的JavaScript日期选择器,为Web开发者提供了便捷、高效的选择日期解决方案。它的灵活性和可定制性使其在各种项目中都能发挥重要作用。了解并掌握其使用方法和特性,能极大地...

Global site tag (gtag.js) - Google Analytics