<body style="margin:0px;padding:0px;overflow:hidden" onload="img.src='http://sjabbo.net/logo.png?'+(+new Date())">
<img id="img"
onload="iframe.src='http://sjabbo.net'"
onerror="iframe.src='offline.html'"
width="0px" height="0px">
<iframe width="100%" height="1000px"></iframe>
</body>
因此,如果本地用户具有互联网连接,则iframe应更改为&#34; http://sjabbo.net&#34;但如果没有,那么&#34; offline.html&#34; 但它似乎不起作用。
答案 0 :(得分:0)
首先,您不能只使用&#34; img&#34;,因为对于JavaScript,它并未在全球任何地方定义。如果要按ID访问映像,则需要执行以下操作。另外,我猜你想要一个时间戳而不是长日期。在onload
:
document.getElementById('img').src = 'http://sjabbo.net/logo.png?' + (new Date()).getTime()
对您的iframe执行相同操作(您必须先为其分配ID)。
答案 1 :(得分:0)
这个怎么样:
<body style="margin:0px;padding:0px;overflow:hidden">
<img id="img" src="http://sjabbo.net/logo.png"
onload="document.getElementById('iframe').src='http://sjabbo.net'"/>
<iframe src="offline.html" id="iframe" width="100%" height="1000px"></iframe>
</body>
你可以介绍&#34;测试&#34;像这样的页面:
<body style="margin:0px;padding:0px;overflow:hidden">
<img id="img" src="http://sjabbo.net/logo.png"
onload="document.getElementById('iframe').src='http://sjabbo.net'"
onerror="document.getElementById('iframe').src='offline.html'"/>
<iframe src="testing.html" id="iframe" width="100%" height="1000px"></iframe>
</body>
答案 2 :(得分:0)
我认为你并不了解网络是如何运作的。
您不需要为每个有孩子的元素添加一个onload。每个元素都是一个接一个地创建的。所以现在删除所有的onloads。
您似乎想等到知道图像是否正确加载。根据此情况,您需要激活iframe。
您想要创建一个javascript标记(或者为了更好的做法,创建一个js文件)。
var img = document.getElementById('img'),
iframe = document.getElementById('iframe'); //add iframe as an id to your iframe
img.onload = function(){
//this is called when the image is finished loading.
iframe.src = 'http://sjabbo.net';
};
img.onerror = function(){
//this is called when the image wasn't able to load properly
iframe.src = 'offline.html'; //To be honest this doesn't make much sense
//You should instead just hide the iframe and the image
iframe.style.visibility = 'none';
img.style.visibility = 'none';
};
img.src = 'http://sjabbo.net/logo.png?' + (new Date()).getTime();
对于将来的编程,请尝试从您的HTML中分离您的js和css。你正在做的事情并不好。