如果没有互联网连接,请隐藏iframe

IFRAME:

 

jQuery的:

 $( document ).ready(function() { window.setInterval(function(){ if (navigator.onLine) { //$("#iframe").show(); $("#iframe").attr("src", "http://weather.gc.ca/wxlink/wxlink.html?cityCode=on-143&lang=e"); } else{ $("#iframe").hide(); } }, 5000); }); 

如果没有互联网连接,我无法隐藏iframe。 我不知道这里有什么问题。 谢谢。

navigator.onLine告诉您浏览器是否处于“离线”模式。

实际上并没有像你想象的那样检查你是否可以上网。

(要做到这一点,你可以尝试使用ajax ping Google.com,或者做一些类似的技巧)

您可以使用type:'jsonp'timeout:3000 (这是三秒)执行ajax请求到您希望通过框架包含的同一页面。

 $.ajax({ type : "GET", url : "http://weather.gc.ca/wxlink/wxlink.html?cityCode=on-143&lang=e", timeout : 3000, dataType : "jsonp", crossDomain : true, success : function (response, textS, xhr) { // never get here }, error : function (xmlHttpRequest, textStatus, errorThrown) { if (textStatus === 'timeout') { // not reachable } else { // reachable } } }); 

但是,您将始终收到语法错误,因为该页面的内容不是脚本。 但浏览器通常能够在出现此类错误后进行恢复。 UPD。 只是尝试用你的url,它的工作原理。