2012-02-09 4 views
2

Internet Explorer (все версии), по-видимому, полностью игнорируют любые изменения, внесенные в DOM при использовании команды «Сохранить как», возвращая сохраненную версию в состояние веб-страницы при первой загрузке , Это влияет на приложения javascript, где вы пытаетесь сохранить моментальный снимок текущего состояния приложения.Сохранить весь сайт - Internet Explorer и код сгенерированный javascript

В этом следующем тривиальном примере при загрузке страницы появляется случайное число. Сохранение этой страницы в Firefox или Chrome приводит к тому, что этот номер является FIXED в результирующем сохраненном документе (поскольку в следующий раз, когда вы его открываете, диапазон .generateRandomNumber был удален и перезаписан, поэтому JS не выполняется).

<!DOCTYPE HTML> 
<html> 
<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
    <script type="text/javascript"> 
    jQuery(function($) { 
     if ($('.generateRandomNumber').length) { 
      var randomNumber = Math.round(Math.random() * 1000); 
      $('.generateRandomNumber').remove(); 
      $('body').html(randomNumber); 
     } 
    }); 
    </script> 
</head> 
<body> 
    <span class="generateRandomNumber"></span> 
</body> 
</html> 

Вы также можете увидеть поведение, выполнив следующие действия из консоли IE:

var w = window.open(); 
w.document.body.innerHTML = "Hello world. Please save me"; 

Еще один простой пример должен был бы выполнить следующий скрипт на любой странице (от IE консоли разработчика). Запустите его, посмотрите, как HTML вытереть, сохраните его, откройте сохраненную версию и снова увидите исходный сайт.

document.body.innerHTML = ""; 

Сохраните этот новый документ, и текст исчезнет, ​​когда вы его откроете.

Я рассмотрел следующие страницы, но теперь нашли какое-либо решение:

Save the document generated by javascript

http://dsgdev.wordpress.com/2006/09/27/save-as-real-data-when-the-page-is-generated-with-javascript-documentwrite/

Любая помощь будет оценена.

+0

Хотя интересный вопрос, сохранение страниц с помощью Save As ... никоим образом, форма или форма, я не знаю, как стандартизован и не нужен вообще. Таким образом, вы, вероятно, просто не повезло, что вы ожидаете, что это будет работать последовательно в браузерах. – deceze

+0

Любое предложение об обходном пути? Я думаю, что единственное обходное решение потребует сервера, и это приложение должно работать в автономном режиме. – captainclam

ответ

1

Если вы нажмете F12, откроются инструменты для разработчиков. Нажмите кнопку «Сохранить» в окне инструментов разработчика и сохраните текущую версию DOM в виде HTM-файла.

Вам нужно будет сохранить другие ресурсы (изображения, js, css и т. Д.) Отдельно.

+0

Спасибо за предложение, но это не жизнеспособное решение для этого сценария. – captainclam

+0

@captainclam, можете ли вы дать нам более подробную информацию о том, почему это не жизнеспособное решение? Что вам нужно, кроме сохранения текущей версии страницы и ее ресурсов? Что еще вы ищете? – CodeThug

Смежные вопросы