IFRAME:
<iframe id="iframe" title="Environment Canada Weather" src="" allowtransparency="false" frameborder="0" height="170"></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。我不知道这里有什么问题。 感谢。
答案 0 :(得分:1)
navigator.onLine
会告诉您浏览器是否处于“离线”模式。
实际上并没有像你想象的那样检查你是否可以上网。
(要做到这一点,你可以尝试使用ajax ping Google.com,或者做一些类似的技巧)
答案 1 :(得分:0)
您可以使用type:'jsonp'
和timeout:3000
(即3秒)向您希望通过框架添加的同一页面执行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。只是尝试使用你的网址,它可以工作。