iframe简单问题.

zhoujianzhou 2009-08-23 09:17:00
我现在正搞一个ajax请求里面徐了xmlhttprequest、jsonp,还必须集成iframe
问题就在于,当iframe请求的页面有异常(server 泡出异常),那客户端如何捕获,
如果是xmlhttprequest,就是status值不为200,那iframe有是如何捕获呢.
...全文
143 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
浴火涅磐 2009-08-26
  • 打赏
  • 举报
回复
楼主可以在本页面写个js直接捕捉异常的
xin51211 2009-08-26
  • 打赏
  • 举报
回复
top
禽兽v5 2009-08-24
  • 打赏
  • 举报
回复
返回的数据包中加点http header
Harrison_2009 2009-08-23
  • 打赏
  • 举报
回复
帮顶!
zhoujianzhou 2009-08-23
  • 打赏
  • 举报
回复
区分server无异常返回、有异常的返回
zhoujianzhou 2009-08-23
  • 打赏
  • 举报
回复
iframe和xmlhttprequest一样,都具有onreadystatechange事件,
当readyState == "complete"时成功返回(当server有无异常也一样返回)

注意,最重要的是如何区分server成功返回、有异常的返回
rememberhai 2009-08-23
  • 打赏
  • 举报
回复
mark
zhoujianzhou 2009-08-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 panqintao 的回复:]
window.parent.frames["Frame"].document.getElementById("YourController").value;获取到Frame中值赋给母版页的一个隐藏控件(runat=server)。后台就可以获取了。因为有异常就可以通过获取的内容判断。

不知道是不是这个意思....
[/Quote]

感谢您的回复,
我现在不是客户端有异常,后台来获取.
刚好相反,我是后台有异常,而要把异常返回到客户端.(最好可以通过客户端回调函数来捕捉server的异常.)
panqintao 2009-08-23
  • 打赏
  • 举报
回复
window.parent.frames["Frame"].document.getElementById("YourController").value;获取到Frame中值赋给母版页的一个隐藏控件(runat=server)。后台就可以获取了。因为有异常就可以通过获取的内容判断。

不知道是不是这个意思....
zhoujianzhou 2009-08-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lovely_baby 的回复:]
可以直接在页面用js做判断

[/Quote]

能具体点吗?

以我所知到的,iframe和xmlhttprequest一样,都具有onreadystatechange事件,
当readyState == "complete"时成功返回(当server有无异常也一样返回)
zhoujianzhou 2009-08-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 nosuchtracter 的回复:]
直接在那个页面,用JS捕捉?
通过刷新母页面弹出错误?
[/Quote]
感谢您的提示,
你是说在客衣端用try catch吗?
那怎么可以呢.因为异常是在server抛出的,客户端怎么可以用try catch捕捉到呢?
(我理解错您你意思了吗?)

我的问题其实就是,如果iframe页有异常,那母页怎样才能捕捉到呢
Lovely_baby 2009-08-23
  • 打赏
  • 举报
回复
可以直接在页面用js做判断
nosuchtracter 2009-08-23
  • 打赏
  • 举报
回复
直接在那个页面,用JS捕捉?
通过刷新母页面弹出错误?
zhoujianzhou 2009-08-23
  • 打赏
  • 举报
回复
等高手.
zhoujianzhou 2009-08-23
  • 打赏
  • 举报
回复
自己顶.
zhoujianzhou 2009-08-23
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 kk3k2005 的回复:]
iframe只是接受和执行server反馈的内容

你就一心一意的组织SERVER反馈的内容好了 (异常和正常情况 都要反馈你自己组织的内容)

我觉得你说的异常 更本和IFRAME完全没有关系

这些都是 服务器完全掌控的东西
[/Quote]

但我现在是在写ajax请求类库(集成iframe),别人在使用的时候他怎样组织我是不知到的.那我在客户端(类库中)又怎样区分是否异常信息呢?
KK3K2005 2009-08-23
  • 打赏
  • 举报
回复
iframe只是接受和执行server反馈的内容

你就一心一意的组织SERVER反馈的内容好了 (异常和正常情况 都要反馈你自己组织的内容)

我觉得你说的异常 更本和IFRAME完全没有关系

这些都是 服务器完全掌控的东西
xb520hh 2009-08-23
  • 打赏
  • 举报
回复
顶下
zhoujianzhou 2009-08-23
  • 打赏
  • 举报
回复
感谢showbo的回复
小弟我大概理解了您的意思,
就是在server,用try{}catch{}来捕异常,并在catch中输出之前在客户端定义好的异常回调函数,
这样客户端就可以用正则匹配是否有异常抛出,如果有的话,就eval(errCallback)来执行回函数来获取server抛出的异常.

这样是可以解决问题,但我现在是在写ajax请求框架(集成iframe),别人在使用的时候不会那么的细心去了解你是怎样实现的,也有很多比较懒惰的客户(使用框架的人)根本就不会去给你写什么try {}catch{}更别说要他在catch{}中输出回调函数了...
希望高手们有更好的解决方案.



Go 旅城通票 2009-08-23
  • 打赏
  • 举报
回复
确保程序要正常执行,这个没办法控制

用iframe动态页需要输出js回调,要不就没反应。

第一要确认语法无问题,编译通过
第二把所有代码块放入try{}catch{}语句中,如果异常就在catch块输出异常的js回调。防止运行时错误

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧