У меня есть html-страница, отображающая изображение. он должен задерживаться, меняться на видео, а затем после воспроизведения видео менять изображение. это javascript, который я использую:
<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. Нет задержек, видео просто начинает играть, и я никогда не вижу изображения; до или после.
любые мысли об этом были бы замечательными.
edit: так кажется, что document.write виноват. меняя название, чтобы отразить это.
если мой первоначальный вопрос не был ясен, я ищу, чтобы заменить изображение на видео, а затем заменить видео на изображение. это вся загрузка в iframe, поэтому мне нужно использовать document.write(или что-то вроде этого), чтобы на самом деле изменить html.
Использование 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>
Наиболее вероятная проблема заключается в том, что открытие/запись и закрытие документа полностью очищает его, очищая текущие тайм-ауты и в процессе.
Как указано в Document Object Model HTML
Открыть
Откройте поток документов для записи. Если документ существует в target, этот метод очищает.
Так как firefox реализовал четкую часть (полную очистку)