如果源服务器已关闭,则阻止呈现iframe

时间:2013-05-13 16:00:14

标签: jquery iframe dynamic

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

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

在我们的网站停机或处于维护模式的情况下,我们根本不想渲染iframe,因为这会导致主机网站上找不到页面消息。

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

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

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

问题2 :这是否是实现目标的最佳方式,即如果oursite.com停止,则阻止iframe呈现?

2 个答案:

答案 0 :(得分:2)

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

(function($) {

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

})(jQuery);

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

答案 1 :(得分:1)

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