如果未加载URL,如何在<iframe>上显示自定义内容

时间:2016-09-16 14:34:23

标签: javascript jquery html ajax iframe

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

&# xA;&#xA;

&#xA;&#xA;

我想显示自定义内容。

&# xA;&#xA;

已经尝试/搜索过:

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

有没有办法做到这一点?

&#XA;

1 个答案:

答案 0 :(得分: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>