Скопируйте текущую веб-страницу в новое окно - PullRequest
11 голосов
/ 28 января 2010

Мне нужно иметь возможность скопировать текущую веб-страницу в новое всплывающее окно для предварительного просмотра. На странице есть сетка с дочерними элементами, поэтому, если они раскрывают одну из строк, чтобы увидеть дочерние строки, мне нужно показать это в новом окне.

Возможно ли это?

В настоящее время у меня есть всплывающее окно, открывающее ту же страницу, но все строки не раскрываются.

Ответы [ 4 ]

9 голосов
/ 28 января 2010

Возможно, это помогает (в IE и Firefox, а не в Opera. Не знаю насчет WebKit):

var yourDOCTYPE = "<!DOCTYPE html..."; // your doctype declaration
var printPreview = window.open('about:blank', 'print_preview');
var printDocument = printPreview.document;
printDocument.open();
printDocument.write(yourDOCTYPE+
           "<html>"+
               document.documentElement.innerHTML+
           "</html>");
printDocument.close();

(Обратите внимание на разницу между window.open() и document.open()!)

Однако вы потеряете все пользовательские вещицы DOM, такие как обработчики событий и так далее. Тем не менее, это может сработать, если вы просто хотите скопировать и вставить свой HTML.

0 голосов
/ 28 января 2010

Вы просто скрываете / показываете свои строки с отображением: нет ;? Как вы загружаете всплывающую страницу? Если вы снова загружаете страницу, вы можете использовать AJAX для передачи набора данных на целевую страницу.

Назначьте уникальный идентификатор каждой строке, и для каждой развернутой строки добавьте идентификатор строки в массив. Передайте этот массив или объект как член данных через AJAX при вызове функции предварительного просмотра печати, а затем разверните соответствующие строки в функции обратного вызова onsuccess после загрузки страницы.

0 голосов
/ 28 января 2010

Вы также можете использовать JavaScript для доступа к всплывающему окну и вызова функций, таких как «hideRow (x)». Когда я вернусь домой, я добавлю лучший пример (набирать код на iPod touch неинтересно)

0 голосов
/ 28 января 2010

Кодировать состояние открытых / закрытых строк в формат строки запроса (например, «open = row1 + row5 + row10») и передать эту строку в URL-адресе во вновь открытое окно (например, «host.com/blah.html» ? разомкнут = row1 + row5 + row10" ). На целевой странице в функции onload проверьте объект location и снова разверните эти строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...