2010-12-08 68 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

開放
打開用於寫入的文件流指出。如果 目標中存在文檔,則此方法將清除它。

這是火狐如何實現清晰的部分(一個完整的結算

相關問題