如果 IFrame 源有 XML 错误,如何隐藏 HTML 页面中的所有 IFrame?
P粉308089080
P粉308089080 2024-01-10 17:33:29
[HTML讨论组]

我在尝试在 iframe 标记内显示 PDF 预览时遇到问题。我有一个页面包含一些 iframes 以在页面中显示 PDF 文件,问题是有时源 URL 中不存在 PDF,因此 iframe 显示 XML 错误,指出 BlobNotFound。如果在 iframe 的源代码中返回该错误,我想隐藏 iframe

我尝试过下面的 JavaScript 脚本:

此代码有效,但前提是您通过 ID 指定 iframe 标记,并且我想重写此代码以一次检查所有 iframe

我也尝试过下面的代码:

这段代码应该可以工作,但不知何故它隐藏了所有 iframes 即使它没有错误。

P.S.\ 这是任何无法显示 PDF 的 iframe 的 XML 错误。



    BlobNotFound
    
        The specified blob does not exist.
            RequestId:xxxxxxxx
            Time:timestamp
    

P粉308089080
P粉308089080

全部回复(1)
P粉043295337

你可以试试这个!

<!DOCTYPE html>
<html>
<head>
  <title>Hide Iframes with XML Error</title>
</head>
<body>
  <iframe src="path/to/pdf1.pdf"></iframe>
  <iframe src="path/to/pdf2.pdf"></iframe>
  <iframe src="path/to/nonexistent.pdf"></iframe>
  <iframe src="path/to/pdf3.pdf"></iframe>
  <script>
    var iframes = document.getElementsByTagName('iframe');
    for (var i = 0; i < iframes.length; i++) {
      var iframe = iframes[i];
      iframe.contentWindow.addEventListener('error', function(event) {
        if (event.message === 'BlobNotFound') {
          // Hide all iframes if any one of them has an XML error
          for (var j = 0; j < iframes.length; j++) {
            iframes[j].style.display = 'none';
          }
        }
      });
    }
  </script>
</body>
</html>

请告诉我它是否有效。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号