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问题解决