【问题标题】:How to handle javascript errors inside an iframe?如何处理 iframe 中的 javascript 错误?
【发布时间】:2011-10-07 19:19:58
【问题描述】:

我有一个网站,我为没有发生任何 javascript 错误而感到非常自豪。新要求使我不得不在我的网站上放置一个 iframe,以显示其他人的不同域的网站,而我无法访问他们的代码。他们的 javascript 不断抛出错误,导致用户在浏览器底部看到一个难看的红色 x。

我是否可以处理该错误并忽略它?

更新:
简而言之,我正在尝试找到一种方法来劫持 iframe 的 window.onerror 处理程序。

更新:
我不相信这里有答案。即使我可以劫持 iframe onerror 事件,我也不认为有办法让丑陋的红色“X”消失。我会把问题留在这里,希望我错了。

【问题讨论】:

  • 其他网站是否有一些 JSON 方式获取数据?
  • @Detect 我不确定您到底在问什么,但我无法与该站点进行通信或对其进行任何控制。

标签: javascript iframe error-handling cross-domain


【解决方案1】:

您基本上要问的(我认为)是“我可以在 IFRAME 的代码周围放置一个 try/catch 吗”,答案是否定的。但是,您可以通过使用 window.onerror 来接近,至少在许多浏览器(不是 Opera)中(并且由于 IFRAME 有自己的窗口,您应该能够使用这种技术仅捕获 IFRAME 的错误)。

见: Javascript global error handling 了解更多信息。

【讨论】:

  • 这正是我想要做的。到目前为止似乎不起作用,我找不到其他人做过。
  • 你能描述得更详细些吗?您到底尝试了什么,但它什么也没做,是否出现错误,...?
  • 所以我给你一个完全有效的答案(对你原来的、未经编辑的问题),作为回报,你投票否决这个答案并将你的问题编辑成另一个问题。然后当我要求你澄清事情以便我可以回答你的新问题时,你甚至没有礼貌的回应。优雅。
  • A)它对您的原始问题有效,它没有提及 onerror 并且只是说“我该怎么做”;我回答说,B)如果有 0 票,你不需要对答案投反对票;您的问题仍将被视为未回答 C)downvote 是针对某人给出错误答案而设计的;我的答案是一个非常好的答案,直到你改变了问题(它仍然是最好的答案,因为......) D)你的问题已经“未回答”三天了,没有其他人回应......也许是因为他们没有不想因为像我一样帮助你而受到惩罚
  • E) 我不是在“情绪化”,我是在呼唤你寻求帮助,在我试图帮助你时(通过回答你提出的问题)对我投反对票,并且(仍然)不提供任何进一步的信息,以便我(或其他任何人)实际上可以对您的新问题给出有效的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-16
  • 1970-01-01
  • 1970-01-01
  • 2011-04-11
  • 1970-01-01
  • 2021-11-13
相关资源
最近更新 更多