2014-11-17 1 views
0

Итак, я получил этот сайт, где я динамически создаю элементы с помощью javascript. Когда пользователь будет создан, элемент, который он хочет, он может нажать кнопку печати. Это запустит следующую функцию javascript:Как перезагрузить скрипты после отмены функции печати в javascript?

function printContent() { 

var restore = document.body.innerHTML; 

var printcontent = document.getElementById('h').innerHTML; 

document.body.innerHTML = printcontent; 

window.print(); 

document.body.innerHTML = restore; 

} 

Пока что так хорошо. Но когда кто-то отменяет печать, он визуально возвращается в прежнее состояние, но сценарии не загружаются. Я проверил это, дав предупреждение в моих внешних js-документах. Предупреждение никогда не запускается при возврате из команды печати. Я знаю, что проблема заключается в восстановлении переменной. Он просто возвращает строку.

Мой вопрос: как я могу снова загружать файлы js, сохраняя тело документа в состоянии восстановления при отмене команды печати.

Заранее спасибо.

ответ

2

Существует window.onafterprint событие реализовано в Firefox и IE, это не кросс-браузер, хотя developer.mozilla.org

Edit: я нашел this, который должен быть кросс-браузер, совместимый:

(function() { 
    var beforePrint = function() { 
     console.log('Functionality to run before printing.'); 
    }; 
    var afterPrint = function() { 
     console.log('Functionality to run after printing'); 
    }; 

    if (window.matchMedia) { 
     var mediaQueryList = window.matchMedia('print'); 
     mediaQueryList.addListener(function(mql) { 
      if (mql.matches) { 
       beforePrint(); 
      } else { 
       afterPrint(); 
      } 
     }); 
    } 

    window.onbeforeprint = beforePrint; 
    window.onafterprint = afterPrint; 
}()); 
+0

Спасибо! Я рассмотрю это. Не знал об этом. – Michelangelo

+0

Ну, после некоторых тестов я решил отказаться. Он работает, но определенно не идеален и не работает для моих скриптов. Я буду придерживаться плагинов jQuery. Было бы неплохо написать чистый скрипт печати javascript. Думаю, я попробую еще раз, когда у меня будет время. – Michelangelo

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