javascript - 如果未正确加载,则隐藏 iframe

标签 javascript jquery iframe

我的页面上有几个指向外部网站的 iframe。如果这些服务中断或更改,我想隐藏这些 iframe 而不是在我的页面上显示错误消息。 如果 iframe 已正确加载,有什么方法可以在 Javascript 中找到? 我添加了一个类来隐藏 iframe,然后在 iframe 准备就绪时使用 jQuery 将其删除,如下所示:

$('#widget').ready(function () {
    $('#widget').removeClass('hidden');
});

当我在 iframe src 中放入无效 URL 时,它仍然会删除隐藏类,显示错误 iframe。 我的问题有两个:

  • 如果 iframe 已正确加载,我如何才能使函数正常运行?
  • 我不想使用 $('#widget').ready,而是想使用 $('iframe').ready 一次定位所有 iframe;如果我这样做,如何在函数内部引用加载的特定 iframe?

谢谢!

最佳答案

您的问题可以归结为:

how can I check if an URL exists and the website is alive from Javascript ?

答案分为:

  • 对于内部 URL,使用 AJAX 并检查响应代码:如果它是 2xx3xx (例如 200 或 302),没关系。如果是 4xx5xx (例如 404 或 500)这很糟糕。在 a similar answer 上阅读更多内容.

  • 对于外部 URL,由于称为 same-origin policy 的安全措施,您不能这样做.

由于您似乎指向外部 URL,因此这是我的建议:

创建一个服务器端组件(一个 Servlet、一个 RESTful WebService、一个 Struts2 操作等...根据您使用的服务器端技术,您喜欢什么)为您执行检查,并返回一个流式传输响应数据(如果有)和 HTTP 响应代码,您可以检查错误。然后从<iframe>让我们调用您的组件 URL。

关于javascript - 如果未正确加载,则隐藏 iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28589387/

相关文章:

javascript - jQuery 文件上传插件不调用成功回调

javascript - 如何验证PDF表单?

javascript - window.location.replace 不适用于某些网址

php - 扫描远程站点的 DOM

javascript - 如何将变量从 iframe 传递到父窗口?

javascript - 将 jquery include 添加到 DotNetNuke 4.8 皮肤不会执行任何操作

javascript - 自动刷新 div 中的 PHP 重定向

jquery - 我们如何针对 DOM 操作执行单元测试?

javascript - 如何在动态更改 iframe 源时摆脱 flickring?

javascript - 打开多个不同的 iframe