Javascript中的Onload iframe无法正常工作

时间:2015-04-19 07:30:30

标签: javascript html iframe

<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; 但它似乎不起作用。

3 个答案:

答案 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。你正在做的事情并不好。