0

我们希望以 iframe 的形式向第三方网站提供包含我们网站内容的小部件。

<iframe src="http://oursite.com/iframe"> </iframe>

在我们的网站关闭或处于维护模式的情况下,我们根本不希望 iframe 呈现,因为这将导致主机网站上出现页面未找到消息。

为了实现这一点,我们希望在检查我们的服务器 (oursite.com) 以 200 状态响应后动态嵌入 iframe。

为了使这个“检查”过程尽可能轻量级,我们创建了一个http://mysite.com/status返回空响应正文的 url。除非服务器关闭或处于维护模式,否则响应状态将始终为 200。

问题 1:什么是 javascript (plain/jquery) 代码示例,可以放置在主机的网站上以发出请求http://oursite.com/status并获取响应状态(以便我们可以决定是否将 iframe 标记附加到文档中)?

问题 2:如果 oursite.com 关闭,这是实现阻止 iframe 呈现的目标的最佳方法吗?

4

2 回答 2

3

使用 javascript,创建一个图像元素并从目标域加载任意图像。使用图像元素的 onload 事件来显示 iframe。如果图像永远不会加载,则 iframe 永远不会显示。

(function($) {

    var img = $('<img/>');
    img.on('load', function() { /* show iframe */ });
    img.prop('src', 'http://www.example.com/my.gif');

})(jQuery);

使用此方法不需要单独的状态 url。这是实现目标的一种非常轻量级的方法。

于 2013-05-13T16:02:44.883 回答
1

使用<script src="http://mysite.com/mysitewidget.js"></script>. 如果由于服务器关闭而无法检索脚本,则不会创建 iframe。(虽然它会在等待所述脚本超时时减慢用户的网站速度。)

于 2013-05-13T16:15:13.503 回答