2010-12-08 35 views
1

我有一个HTML页面显示图像。它应该延迟,更改为视频,然后在播放视频后,切换回图像。这是我正在使用的javascript:为什么JavaScript document.write在Firefox上不起作用?

<script type="text/javascript"> 
function playVideo(){ 
var str='**html of the video object**'; 
document.open(); 
document.write(str); 
document.close(); 
} 
function backToImage(){ 
var str='**html of the image**'; 
document.open(); 
document.write(str); 
document.close(); 
} 
setTimeout("playVideo()",1000); 
setTimeout("backToImage()",3000); 

</script> 

此javascript可在Chrome和Safari中使用。它主要在IE中工作(第二次超时不起作用,但我刚刚发现了这一点)。它在Firefox中完全不起作用。没有延迟,视频只是开始播放,我从来没有看到图像;之前或之后。

对此的任何想法都会很棒。

编辑:所以似乎document.write是责备。改变标题以反映这一点。

如果我的原始问题不清楚,我在寻找的是用视频替换图像,然后用图像替换视频。这是所有加载在iframe中,所以我需要使用document.write(或类似的东西)实际上更改的HTML。

+0

@slomojo:字符串函数调用的罚款,只要功能是全局定义将工作,他们似乎是。 – user113716 2010-12-08 23:22:10

+0

啊,我看到这是写文件,搞砸了。 – ocodo 2010-12-08 23:27:16

回答

5

页面已经加载后使用document.write有点奇怪。这应该只用于在加载时生成页面。尝试这样的事情,而不是:

<html> 
    <head> 
    <script type="text/javascript"> 

     function playVideo(){ 
     var str='**html of the video object**'; 
     document.getElementById('video-placeholder').innerHTML = str; 
     } 
     function backToImage(){ 
     var str='**html of the image**'; 
     document.getElementById('image-placeholder').innerHTML = str; 
     } 
     setTimeout(playVideo, 1000); 
     setTimeout(backToImage, 3000); 

    </script> 
    </head> 
    <body> 
    <div id="video-placeholder"></div> 
    <div id="image-placeholder"></div> 
    </body> 
</html> 
+0

我不认为你明白。我想用document.write来替换图像和视频。然后用图像替换视频。如果我正确地阅读这些内容,这只会向他们展示两者。 – psolms 2010-12-08 23:32:12

3

最有可能的问题,是一个文档的打开/写入和关闭彻底将其清除,清除当前超时,在这个过程中,也是如此。

正如Document Object Model HTML

开放
打开用于写入的文件流指出。如果 目标中存在文档,则此方法将清除它。

这是火狐如何实现清晰的部分(一个完整的结算

相关问题