Распечатать содержимое модального всплывающего окна

У меня есть приложение, которое показывает список предметов.

Пользователь может щелкнуть элемент и просмотреть сведения о нем в модальном всплывающем окне (DIV по центру, показанный с использованием JavaScript). Мне нужна кнопка в этом всплывающем окне, которая позволит пользователю распечатать только содержимое модального всплывающего окна.

Это для внутреннего приложения, которое должно работать только в IE7 +. Когда пользователь нажимает кнопку печати в модальном всплывающем окне, состояние элемента изменяется на «напечатано» (по внутренним причинам бизнеса ...).

Я использую ASP.NET и Набор средств управления ASP.NET AJAX ModalPopupExtender, но предполагаю, что метод достижения этого будет ориентирован на браузер и не зависит от серверных технологий.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
1
0
11 533
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Вы можете перенаправить на страницу для печати, содержащую содержимое модального всплывающего окна. Убедитесь, что страница имеет window.print () в событии загрузки. Как только ваш пользователь перейдет на эту страницу, вы можете просто отметить это.

Что произойдет, если пользователь попадет туда и отменит печать?

Ответ принят как подходящий

Вы можете добавить имя класса noprint в div, обертывающий все, что вы не хотите печатать.

Если вы также хотите, чтобы главная страница была доступна для печати без диалога, вы можете добавить имя класса в оболочку DIV, когда пользователь нажимает кнопку PRINT, и удалить имя класса после.

@media print {
.noprint {
 display:none
}
}

Попробуй это

function PrintContent() {

var DocumentContainer = document.getElementById('nameofDiv');
var WindowObject = window.open("", "PrintWindow",
"width=750,height=650,top=50,left=50,toolbars=no,scrollbars=yes,status=no,resizable=yes");
WindowObject.document.write();
WindowObject.document.write('<link rel = "stylesheet" type = "text/css" href = "path-to-my-stylesheet.css">')
WindowObject.document.writeln(DocumentContainer.innerHTML);
WindowObject.document.close();
WindowObject.focus();
WindowObject.print();
WindowObject.close();
}

Это распечатает содержимое в другом окне, используя ваши таблицы стилей.

Чтобы отобразить содержимое всплывающего окна с другим стилем (например, не по центру, ширина 100%), я динамически обновляю положение _foregroundElement (PopupControlID) и _backgroundElement (созданного расширителем всплывающих окон) при печати.

var basePrint = window.print;
window.print = function() {
  var popup = $find( '<%= [PopupExtenderID].ClientID %>' );
  popup._backgroundElement.style.position = 'static';
  popup._foregroundElement.style.position = 'static';
  popup._layout();
  basePrint();
  // Restore settings for display
  popup._backgroundElement.style.position = 'fixed';
  popup._foregroundElement.style.position = 'fixed';
  popup._layout();
  }

Примечание. Не работает с кнопкой печати в браузере.

Другие вопросы по теме