当前位置: 代码迷 >> 综合 >> iframe中使用My97DatePicker WdatePicker()无法弹框
  详细解决方案

iframe中使用My97DatePicker WdatePicker()无法弹框

热度:81   发布时间:2023-12-22 09:20:38.0

A项目中通过【单点登录】访问B项目的页面;
这样就可以达到将B项目整合到A项目中的目的;
整合过程中发现B项目的某张页面中在A项目的框架下日期控件My97DatePicker的弹框层无法触发;
这里写图片描述
经过调试,单独在B项目中没有问题;在B项目中集成在【单点登录】框架下没有问题。
集成在A项目中无法触发,在A项目中新建测试页面Default_TEST.aspx(剔除所有引用的.js .css文件 排除是否由样式和脚本引起的问题 只剩 iframe框架)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default_TEST.aspx.cs" Inherits="MediInfo.MCHIS.UIL.Default_TEST" %>
<html >
<head ><title></title>
</head>
<body><form id="form1" ><a href="http://localhost:3921/CBB_QYJC.aspx?_url=TJGZZ_LIANGAI/TJDJ_LIANGAIWX.aspx||tjbhglid=@id=">测试</a><iframe width="100%"height="600px" src="http://localhost:3921/CBB_QYJC.aspx?_url=TJGZZ_LIANGAI/TJDJ_LIANGAIWX.aspx||tjbhglid=@id="></iframe></form>
</body>
</html>
经测试,还是无法触发,排除了现有脚本和样式引起的问题。
在B项目中引用的WdatePicker.js 键入 alert("1");测试WdatePicker.js路径是否正确。
经测试无法“alert("1")”,换成谷歌浏览器却可以看到alert("1");确定路径引用正确。
排除方向往IE兼容性问题上考虑;
通过度娘找到以下链接

[1]my97插件所在的iframe页面刷新了之后就不好使了,怎么回事?
[2]使用iframe搭建的页面使用引用wdatepicker时间控件出问题
[3]求助!WdatePicker日历控件无法弹出
[4]My97日期控件 iframe $dp is not defined
[5]my97datepicker在ie7的iframe里的问题

基本上推测出

$crossFrame:true,

$crossFrame: false,

实际测试,还是无法实现弹框。去掉alert(“1”)测试代码;在谷歌中测试依然会提示alert(“1”);联想到参考文献[1]JavaScript的兼容性与调试技巧
提到的IE8的JS缓存,非常非常霸气。刷新,清空缓存都无效!
果断改为

<script src="../Scripts/My97DatePicker/WdatePicker.js?new Date()" type="text/javascript"></script>

alert(“1”)提示消失;WdatePicker()可以正常弹框!
IE缓存果然是个大坑,方法已经对了,一直用在缓存在测试。

参考文献:
[1]JavaScript的兼容性与调试技巧
[2]JS调试必备的5个debug技巧
[3]Wdatepicker日期控件的使用指南
[4]嵌入iframe页面中使用My97DatePicker问题解决

  相关解决方案