前言:
原来项目只有一个域名,一个包,后来种种原因要和其它的一个应用柔和,将自己的应用作为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的请求,如下截图
可见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目录是一个整体,不可破坏里面的目录结构,也不可对里面的文件改名,可以改目录名 My97DatePicker.htm是必须文件,不可删除(4.8以后不存在此文件) 各目录及文件的用途: WdatePicker.js 配置文件,在调用的...
《My97DatePicker:高效易用的前端时间插件》 在Web开发中,日期和时间选择器是一个不可或缺的组件,它为用户提供了方便的方式来输入和选择日期或时间。My97 DatePicker是一款广受欢迎的JavaScript时间插件,以其...
在实际项目中,开发者可能需要结合Spring MVC、Struts2等框架,将My97DatePicker的日期值绑定到模型对象上,以便进行后续的业务处理。 在压缩包"My97DatePicker及demo.rar"中,可能包含了My97DatePicker的源码、...
《MY97DatePicker:一款备受青睐的JavaScript日期选择器组件》 在网页开发中,日期选择器是一个不可或缺的元素,它使得用户能够方便地输入或选择日期,提升了用户体验。MY97DatePicker是一款广受欢迎的JavaScript...
My97DatePicker目录是一个整体,不可破坏里面的目录结构,也不可对里面的文件改名,可以改目录名 My97DatePicker.htm是必须文件,不可删除 各目录及文件的用途: WdatePicker.js 配置文件,在调用的地方仅需使用该文件 ...
My97DatePicker是一款广泛应用于网页开发中的JavaScript日期选择器控件,它的版本4.7.2在业内得到了广泛应用。这个控件以其强大的功能、灵活的定制性和良好的用户体验而备受青睐。接下来,我们将深入探讨My97...
《My97DatePicker:一款基于jQuery的高效日期选择器组件》 在网页开发中,日期选择器是一个不可或缺的元素,它极大地提升了用户交互体验。My97 DatePicker 是一个基于 jQuery 的强大日期选择器插件,它以其易用性、...
在网页开发中,日期和时间的选择常常是一项必不可少的功能,而My97 DatePicker则是一款高效、易用且功能丰富的JavaScript时间插件,专为网页设计者提供日期选择解决方案。这款插件以其直观的用户界面和灵活的配置...
在提供的资源中,`My97 DatePicker.doc`文档可能包含了详细的API参考和使用教程,帮助开发者更好地理解和使用这个控件。`My97 DatePicker 4_0 演示.mht`文件则是一个演示示例,通过实例展示了My97 DatePicker的各种...
【My97DatePicker详解】 My97DatePicker是一款广泛使用的JavaScript日期选择控件,适用于网页中的日期输入场景。它提供了一种方便、灵活的方式来选择日期,兼容多种浏览器,包括IE 6.0+、Firefox 2.0+、Chrome、...
《My97DatePicker详解——一款强大的...无论是在简单的日期输入,还是在复杂的日期处理场景中,My97DatePicker都能提供有效的解决方案。理解并掌握My97DatePicker的使用,无疑能提升开发效率,提高项目的用户体验。
My97DatePicker是一款广泛使用的JavaScript日期选择器控件,它为网页中的日期输入提供了便捷的交互体验。这个控件以其高效、易用和高度可定制性而受到开发者的青睐。在网页开发中,日期选择器通常用于用户输入日期时...
My97DatePicker 日期控件的chm文档 API My97日期控件chm帮助文档
《My97DatePicker4.0:JavaScript日历控件的高效解决方案》 在网页开发中,日期选择器是一个常见的交互元素,它为用户提供了一个方便的方式来输入或选择日期。My97DatePicker4.0是一个高性能的JavaScript日历控件,...
My97DatePicker是一款非常流行的JavaScript日期选择器插件,它为网页开发人员提供了一种方便、灵活的方式来处理日期输入。这个RAR压缩包包含了My97DatePicker的所有相关文件,包括JavaScript库、CSS样式表以及可能的...