Google Chrome не печатает мой контент, сгенерированный Javascript и AJAX - PullRequest
3 голосов
/ 25 октября 2011

Я разработчик веб-приложения.

Chrome отображает мои веб-страницы, сгенерированные Javascript-и-AJAX, корректно, но когда я пытаюсь их распечатать (через встроенную функцию), я получаю пустую страницу.

Печать отлично работает в других браузерах.

Я пробовал печатать страницы, созданные на стороне сервера, с помощью Chrome, и они печатались нормально.

Что может быть не так навеб-страницы моего веб-приложения?Я думаю, проблема в том, что эти страницы динамически генерируются Javascript и AJAX.
Я говорю это, потому что только что обнаружил, что не могу даже правильно сохранить эти страницы с помощью Chrome (весь динамический HTML не отображается).

Я нахожусь в Google Chrome 13.0.782.112.
Как я могу отладить и устранить эту проблему?Есть ли обходной путь?Кому-нибудь удается распечатать динамически сгенерированный контент с помощью Google Chrome?

Эта проблема сводит меня с ума!

PS: некоторые из моих пользователей сообщают о той же проблеме в Safari: - (

ОБНОВЛЕНИЕ : обновлено до Chrome 14.0.835.202, но проблема все еще существует ...

Ответы [ 3 ]

2 голосов
/ 11 сентября 2012

Это помогло мне решить проблему, связанную с просмотром / сохранением динамически сгенерированного HTML.Я создал следующий букмарклет:

<code>javascript:(function(){document.write('<pre>'+(document.getElementsByTagName('html')[0].innerHTML.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;'))+'
')}) ()

Я запускаю это и «выбираю все» / копирую, а затем (в Linux) делаю «xclip -out ', чтобы направить большой объем данных буфера обмена в файл.

2 голосов
/ 09 марта 2014

Ответ Тревора полностью сработал для меня - с помощью jquery я просто сделал что-то вроде

$("html").html $("html").html()

сработало отлично

2 голосов
/ 25 октября 2011

У меня была точно такая же проблема, хотя не в Chrome (хотя я на самом деле не тестировал с Chrome).В некоторых браузерах (и я не могу вспомнить, какие из них были сделаны вручную - но это было либо в IE, либо в FF), любой контент, который добавляется в DOM с помощью JavaScript, не печатается.На самом деле печатается оригинальный документ, который был передан в браузер.

Я успешно решил эту проблему, используя следующую функцию JavaScript:

function docw()
{
    var doct = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"  
    \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">";
    document.write(doct + document.getElementsByTagName('html')[0].innerHTML);
}

Вызывается после завершения манипулирования страницей JavaScript.Он фактически читает весь DOM, а затем переписывает весь документ обратно в себя, используя document.write.Теперь это позволяет печатать для моего конкретного проекта как в IE, так и в FireFox, хотя я уверен, что один из них уже работал в первую очередь, а другой - нет (не помню, какой из памяти, и этоне проект, который я могу вытащить для тестирования в данный момент).Решит ли это проблему в Chrome, я не знаю, но стоит попробовать.

Редактировать Ужасно извините, но я полный плеб.Я просто перечитал мои старые комментарии, и это решение не имело ничего общего с печатью;на самом деле это было для устранения проблемы, при которой при сохранении в файл сохранялся только исходный документ.Однако, тем не менее, я все еще задаюсь вопросом, стоит ли это выстрел.

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