【问题标题】:Jquery/javascript detection if iframe can be loadedjQuery/javascript 检测是否可以加载 iframe
【发布时间】:2010-12-16 20:56:50
【问题描述】:

我有 iframe 和我从另一个服务器/域服务器的 OpenX 广告。

当此广告服务器出现问题时,主服务器不会加载全部内容,因为 openx 在 iframe 中加载的域没有响应。我一直认为 iframe 独立于主站点工作,但如果域根本没有响应,它就不会......

无论如何,主站点可以以某种方式检测到 iframe 中的 url 没有响应并跳过加载 iframe 并显示站点的其余部分吗?

【问题讨论】:

    标签: javascript jquery iframe detection openx


    【解决方案1】:

    加载网站后如何加载 iFrame?使用 jQuery(甚至使用 window.load 事件的普通 javascript)很容易做到这一点。

    因此,与其想“检测” iFrame 是否已加载,您可以在网站的其余部分完成加载后加载它。 (抱歉过度使用'load'这个词)

    在 jQuery 中,您可以简单地将 url 附加到 document.ready 事件上的 iFrame。

    空白 iFrame

    <iframe id="iframe-ad" width="200"></iframe>
    

    用于在 document.ready 上加载 URL 的简单 jQuery

    <script type="text/javascript">
        $(document).ready(function() {
            $("#iframe-ad").attr("src", "http://www.google.com");
        });
    </script>
    

    【讨论】:

      【解决方案2】:

      不幸的是,除非它们来自同一个域,否则没有简单的方法可以做到这一点。我知道有一种方法可以让 iframe 中的 javascript 对其包含的父文档执行一些操作,但我不确定如何......

      【讨论】:

        【解决方案3】:

        这是不可能的,因为Same origin policy,在某些浏览器中存在一些“空白”。但这不推荐!

        【讨论】:

          【解决方案4】:

          可能无法获得最佳体验,但您可以制作本地重定向文件。类似:

          <iframe src="http://www.mydomain.com/redir?url=http://www.theirdomain.com/ads"/>
          

          然后redir页面就返回了

          <script>
              location.href = "${url}";
          </script>
          

          这样,只要您的服务器有响应,其他一切都会在 iframe 重定向时照常进行?

          【讨论】:

            【解决方案5】:

            如果我没有 iframe 只是来自不同域的 javascript 怎么办?如果域没有响应,javascript 会阻止页面不加载。有没有办法防止这种情况发生?

            【讨论】:

              猜你喜欢
              • 2013-06-10
              • 2014-03-13
              • 1970-01-01
              • 2012-08-29
              • 1970-01-01
              • 1970-01-01
              • 2021-05-16
              • 2011-05-31
              • 2018-02-07
              相关资源
              最近更新 更多