Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Перестал работать скрипт для печати картинки в Хроме и Опере. (https://javascript.ru/forum/misc/49006-perestal-rabotat-skript-dlya-pechati-kartinki-v-khrome-i-opere.html)

Согдиана 25.07.2014 11:49

Перестал работать скрипт для печати картинки в Хроме и Опере.
 
Здравствуйте, уважаемые знатоки! Помогите пожалуйста в решении моей проблемы. Я всегда пользовалась вот этим кодом для вывода на печать картинки. Все работало во всех браузерах, а теперь в Хроме и Опере выдаёт в окне печати пустой лист. Как мне это исправить?

<a onClick="javascript:CallPrint('print-content');" title="Распечатать раскраску">
<img src="images/my_images/print1.jpeg" width="130" height="30" onmouseover="this.src='/images/my_images/print2.jpeg';"
onmouseout="this.src='/images/my_images/print1.jpeg';" style="float: right;" /></a>
<a href="адрес картики"
download="raskraska.jpg"><img src="images/my_images/download1.jpeg" width="130" height="30"
onmouseover="this.src='images/my_images/download2.jpeg';" onmouseout="this.src='images/my_images/download1.jpeg';" style="float: left;" /></a>
<div id="print-content">
<img src="адрес картинки" alt="Раскраска"/>
</div>
<script language="javascript">
function CallPrint(strid)
{
var prtContent = document.getElementById(strid);
var prtCSS = '<link rel="stylesheet" href="/templates/css/template.css" type="text/css" />';
var WinPrint = window.open('','','left=50,top=50,width=800,height =640,toolbar=0,scrollbars=1,status=0');
WinPrint.document.write('<div id="print" class="contentpane">');
WinPrint.document.write(prtCSS);
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.write('</div>');
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
prtContent.innerHTML=strOldOne;
}
</script>

tsigel 25.07.2014 12:07

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Согдиана 25.07.2014 12:41

Спасибо. Я попробую.
<a onClick="javascript:CallPrint('print-content');" title="Распечатать раскраску">
<img src="images/my_images/print1.jpeg" width="130" height="30" onmouseover="this.src='/images/my_images/print2.jpeg';" 
onmouseout="this.src='/images/my_images/print1.jpeg';" style="float: right;" /></a>
<a href="адрес картики" 
download="raskraska.jpg"><img src="images/my_images/download1.jpeg" width="130" height="30" 
onmouseover="this.src='images/my_images/download2.jpeg';" onmouseout="this.src='images/my_images/download1.jpeg';" style="float: left;" /></a>
<div id="print-content">
<img src="адрес картинки" alt="Раскраска"/>
</div>
<script language="javascript">
function CallPrint(strid)
{
var prtContent = document.getElementById(strid);
var prtCSS = '<link rel="stylesheet" href="/templates/css/template.css" type="text/css" />';
var WinPrint = window.open('','','left=50,top=50,width=800,height =640,toolbar=0,scrollbars=1,status=0');
WinPrint.document.write('<div id="print" class="contentpane">');
WinPrint.document.write(prtCSS);
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.write('</div>');
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
prtContent.innerHTML=strOldOne;
}
</script>

tsigel 25.07.2014 12:50

А каков размер картинки которую вы хотите распечатать?
Может быть она просто не успевает загрузиться?

tsigel 25.07.2014 12:59

Попробуйте писать вместо
function CallPrint(strid) {
 var prtContent = document.getElementById(strid);
 var prtCSS = '<link rel="stylesheet" href="/templates/css/template.css" type="text/css" />';
 var WinPrint = window.open('','','left=50,top=50,width=800,height =640,toolbar=0,scrollbars=1,status=0');
 WinPrint.document.write('<div id="print" class="contentpane">');
 WinPrint.document.write(prtCSS);
 WinPrint.document.write(prtContent.innerHTML);
 WinPrint.document.write('</div>');
 WinPrint.document.close();
 WinPrint.focus();
 WinPrint.print();
 WinPrint.close();
 prtContent.innerHTML=strOldOne;
}


написать так:

function CallPrint(strid) {
 var prtContent = document.getElementById(strid);
 var prtCSS = '<link rel="stylesheet" href="/templates/css/template.css" type="text/css" />';
 var WinPrint = window.open('','','left=50,top=50,width=800,height =640,toolbar=0,scrollbars=1,status=0');
 
 var print = document.createElement("div");
 print.className = "contentpane";
 print.setAttribute("id", "print");
 print.appendChild(prtContent.cloneNode(true));
 
 WinPrint.document.body.appendChild(print); 

 WinPrint.focus();
 WinPrint.print();
 WinPrint.close();
}

Согдиана 25.07.2014 13:01

700x1000 px. В других браузерах Яндекс, Мозила, Эксплорер всё отлично работает.

Согдиана 25.07.2014 13:11

Спасибо вам огромное, tsigel! Ваш код работает во всех браузерах, кроме Эксплорера.


Часовой пояс GMT +3, время: 13:18.