【问题标题】:How to show custom content on <iframe> if URL didn't load如果 URL 未加载,如何在 <iframe> 上显示自定义内容
【发布时间】:2017-01-24 20:04:47
【问题描述】:

我有一个显示跨域页面的&lt;iframe&gt;。有些网站有效,有些则无效。 当 URL 由于任何原因未加载时,我不希望 &lt;iframe&gt; 显示默认错误页面(每个浏览器不同)。

我想显示自定义内容。

已经尝试/搜索过:

  1. &lt;iframe&gt; 不会触发任何错误事件,因此 javascript &lt;iframe onerror=="callback"&gt; 不起作用。
  2. 使用 ajax 的跨域请求将返回失败,状态码 = 0,因此 $.get(url).then().catch() 不起作用。
  3. 我可以在服务器端测试 URL,但问题是客户端。
  4. &lt;iframe onload="callback"&gt; 没有提供有关正确加载 URL 的任何信息,仅提供 DOM 元素。
  5. 由于所有浏览器的安全功能,无法跨域访问 &lt;iframe&gt; 内部内容。

有没有办法做到这一点?

【问题讨论】:

    标签: javascript jquery html ajax iframe


    【解决方案1】:

    我知道你没有用php 标记它,但后端语言可以在这里提供帮助。在 iframe 源文件中添加后端脚本,例如一些 php,以检测 URL 是否有效,然后相应地显示内容:

    //iframe src
    
    <?php
    
        $headers = get_headers($iframeURL);
    
        if (strpos($headers[0], "404") !== false) {
    
            $HTML = $customContent;
    
        } else {
    
            $HTML = $standardContent;
    
        }
    
    ?>
    
    //in iframe document body
    
        <body><?php echo $HTML ?></body>
    

    【讨论】:

      猜你喜欢
      • 2013-11-20
      • 1970-01-01
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-19
      相关资源
      最近更新 更多