【发布时间】:2020-01-28 12:03:37
【问题描述】:
我有一个 JS 脚本,它可以像这样在 iframe 中加载网页的内容:
$("#iframeid").attr( "src", url );
现在,由于跨域违规,url 的网页上出现了安全错误。该网页有一些 JS 代码尝试访问 window.parent 并由于跨域而失败。除此之外,网页加载正常。
我希望能够在我的脚本中捕捉到这个错误(并简单地记录它)。我正在尝试按如下方式使用 try-catch:
try {
$("#iframeid").attr( "src", url );
}
catch(err)
{
console.log(err);
}
但它没有捕捉到错误。我的猜测是 try 代码在网页加载之前完成执行。
有没有办法让我在我这边捕捉到这个错误?谢谢。
【问题讨论】:
-
只是一个注释,以确认您对页面加载结果的怀疑未与 try-catch 同步结束。页面加载是一个异步过程,页面中提到的资产的到达顺序没有特定的顺序,除非您非常努力地实现这一点。可以通过查看页眉来识别加载错误,页眉本身已经被问过 - 请参阅stackoverflow.com/questions/220231/…。
-
显然您可以通过 Ajax 发出 HEAD 请求,这可能是一种可行的方法,例如,您在主页中发出 head 请求并查看您得到的结果 - 如果您收到 CSS 错误,那么您不要进行 iframe 加载。获取的格式为 xmlhttp.open("HEAD", the_url, true);
-
您好,感谢您的 cmets。错误不是来自 CSS,而是来自网页上的 JS 脚本,它试图调整
parent.window的大小,但由于跨域而失败。这是预期的行为,除了网页加载得很好。所以我只是想抓住这个错误并忽略它。
标签: javascript jquery iframe try-catch