【发布时间】:2012-10-24 17:03:29
【问题描述】:
我正在使用 src 属性将用户选择的页面加载到 iframe 中。如果加载失败,我想以对用户有意义的方式报告问题。根据http://www.w3schools.com/jsref/dom_obj_frame.asp,iframe 通常不支持 onerror。
该页面可能来自用户的域,而不是我的域,因此我无法查看 iframe 的内容。
如果加载成功,我可以设置一个超时并从我的 onload 处理程序中取消它,但是它需要一个很长的超时以避免错误的错误报告,同时我 iPhone 上的 Safari 显示了一个可能会混淆的警报用户。即使这对 Kindle Fire 浏览器也不起作用 - 无论加载是否成功,它都会向我的处理程序传递一个加载事件。
有什么事件可以用来检测失败吗?有什么方法可以抑制默认的 Safari 行为?有什么方法可以判断加载尝试是否失败? (如果我可以这样做,我可以使用更短的超时并轮询,直到加载尝试得到解决)。
我可以要求使用最新的浏览器,但希望有一个可以在尽可能多的智能手机和平板电脑之间移植的解决方案。
我已经测试了 AJAX Get 想法,但不幸的是它不起作用。跨域 AJAX Get 到任意 URI 会导致异常,无论目标是否存在以及是否可以加载到 iframe 中。
【问题讨论】:
-
我意识到这可能是不可能的。如果没有人发布让我做我想做的事情的解决方案,我计划将赏金奖励给最清晰、记录最完整的解释,通过证明这是不可能的来解决问题。
标签: html iframe mobile-safari