2011-01-11 5 views
4

Я пытаюсь напечатать определенный DIV в моем приложении, используя этот JavaScript с JQuery:печать Div С Javascript и сохранить стиль

function PrintContent() 
{ 
w=window.open(); 
w.document.write($('#diary').html()); 
w.print(); 
w.close(); 
} 

Он открывает DIV в новой вкладке и параметры печати панель открывает но стили CSS теряются. У меня есть print.css, установленный для media = "print", однако, я думаю, что это явно не загрузка этого файла на новой вкладке, то есть просто загрузка div, а не заголовок, где находится CSS.

Любая идея, как я могу это исправить? Мой javascript не настолько силен.

Спасибо!

+0

мне нужно иметь stlyesheet ссылается внутри DIV, чтобы сделать его применимым в печати ли? или иметь его на главной странице хватает? –

ответ

3

Попробуйте использовать эту линию вместо:

w.document.write('<div id="diary">' + $('#diary').html() + '</div>'); 

Вы выписывая внутренний HTML вашего DIV, а не фактический DIV тега.

Метод выше также записывает тег div с правильным идентификатором. Я только закрепил идентификатор, потому что вы могли бы форматировать div#diary, а не div.

EDIT

Этот метод должен сохранить стиль.

function PrintContent() 
{ 
    var e = document.createElement('div'); 
    e.id = 'diary'; 
    e.innerHTML = $('#diary').html(); 
    document.getElementById('t').appendChild(e); 
} 

Вы просто должны сделать место, которое этот контент может быть вставлен, например, div с идентификатором t. Как и в примере, который я опубликовал в комментариях.

+0

Привет @ Wolfy87 спасибо за ваш ответ. Я не понимал этого о внутреннем html. Тем не менее, по-прежнему проигрывает форматирование? – Robimp

+0

@ Robimp Да, это потому, что мы просто добавляем HTML, лучший способ был бы что-то вроде этого: http://jsfiddle.net/Wolfy87/49N44/ – Olical

+0

См. Мое редактирование для чего-то, что должно быть близко к тому, что вам нужно. – Olical

0

Поскольку document.write плохая практика:

https://github.com/jasonday/printThis

+0

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. –

+0

хороший звонок. благодаря! – Jason

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