首页 新闻 会员 周边 捐助

请教一个关于iframe里面页面跳转问题

1
悬赏园豆:100 [待解决问题]

问题大致描述下:a.aspx页面用iframe加载b.aspx页面,在iframe里的b.aspx页面按照业务流程会一步一步的redirect导航到下一个页面,我们要求能点击winform外壳(webbrowser控件加载页面)上的上一步按钮执行a.aspx页面的js代码iframe1.prevpage();iframe里的每一个页面都定义了prevpage()方法,prevpage()通过window.location方式让流程回到上一步页面,有时问题就出现在iframe里的页面跳转回上一步页面,发现没有正确回到上一步的页面,而是直接回到最初的刚进来的第一个页面b.aspx,跳过了中间一些页面,而且通过一些日志发现问题出现时候每一步的window.location值都是没有变化一直是最初的页面地址,如果是正常的话随着流程走下去window.location的值是会用当前页面地址更新的,出现问题时候就不会这样。这个问题也是有时出现,不是每次都有,出现时候重启下客户端程序或者重启机器就正常了,折磨我很久了,一直没好的办法解决,我有些怀疑是iframe的缓存造成的,但没有好的办法来验证这个怀疑,不知道有没有人跟我碰到类似情况,还请大家不吝赐教,非常感谢!豆子不多大家敬请原谅,如果帮我解决问题另有答谢。

晓月残星的主页 晓月残星 | 初学一级 | 园豆:102
提问于:2012-05-31 16:38
< >
分享
所有回答(1)
0

按照你的这个分析,还真的有可能是缓存导致的。

你可以

1——

现在浏览器中运行,看是否OK。

2——

对每次WINFORM的点击操作进行监控。这里建议你不要写WINFORM直接操控IFRAME的代码,而是在主页面提供JS方法由WINFORM调用。

无之无 | 园豆:5095 (大侠五级) | 2012-05-31 17:23

1、执行上一步操作一定要结合winform一起,ie里没有上一步按钮。

2、winform里没有直接调用iframe,而是调用主页面a.aspx里的一个js方法function go_prevpage() { iframe1.prevpage();},我们通过每次点击按钮时页面执行到这个go_prevpage()时的当前iframe的页面url总是第一个页面的url其实这个时候流程已经跳转了好几次了。winform里点击按钮的获取url代码:

mshtml.IHTMLDocument3 currentDoc2 = (mshtml.IHTMLDocument3)CurrendWB.Document.DomDocument;

mshtml.IHTMLFrameBase2 fb = (mshtml.IHTMLFrameBase2)currentDoc2.getElementById("iframe1");
 WriteFileLog(string.Format("上一步时当前URL{0}", fb.contentWindow.document.url));

支持(0) 反对(0) 晓月残星 | 园豆:102 (初学一级) | 2012-05-31 17:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册