JS + print() + Opera

Статус
В этой теме нельзя размещать новые ответы.

Axom

Постоялец
Регистрация
25 Апр 2007
Сообщения
320
Реакции
105
Есть код:
HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Печать</title>
</head>
<script type="text/javascript">
function printer()
{
    my_window = window.open("", "Печать", "menubar=0,width=350,height=150");
    my_window.document.write('Печатуемый текст');
    my_window.print();
    my_window.close();
}
</script>
<body>
<a href="#" onclick="javascript: printer()">Печать</a>
</body>
</html>
При нажатии на "Печать" во всех браузерах появляется popup окно и окно печати.
Но в опере окно печати не появляется. Уже всё перепробовать, но добиться чтобы в ней отрывалось popup и печатался текст "Печатуемый текст" так и не получилось.
Помогите кто может! :)
 
в опере тоже все отлично появляется
просто ты это popup -окно сразу закрываешь
my_window.close();
и наверно не успеваешь заметить его появление

короче убей ту строчку
 
в опере тоже все отлично появляется
просто ты это popup -окно сразу закрываешь
my_window.close();
и наверно не успеваешь заметить его появление
короче убей ту строчку
Версия оперы и какая ос?

Ты точно проверял?
Сори, но ты глупость написал. Потому что окно на печать появляется перед закрытием окна, т.е. не даёт ему закрыться, пока не закроется окно печать. Проверено на 100%.
 
Сори, но ты глупость написал. Потому что окно на печать появляется перед закрытием окна, т.е. не даёт ему закрыться, пока не закроется окно печать. Проверено на 100%.
Если оставить весь код как у тебя, то окошко появляется и тут же закрывается. Если же убрать строку как выше посоветовал chang, то окно остается...

Ты точно проверял?
attachment.php



Версия оперы и какая ос?
attachment.php
 

Вложения

  • print.jpg
    print.jpg
    20,1 KB · Просмотры: 20
  • print2.jpg
    print2.jpg
    64,8 KB · Просмотры: 20
А теперь читаем внимательно первое сообщение :)

Действительно:) Писал сонный, не заметил... Думаю это должно помочь:

пример:
PHP:
<script language=javascript>
 window.onload = window.print;
 </script>
 
Тогда печатается первая страница, а не popup :)
Проверено. :(
 
Может кому пригодится, вот решение:
HTML:
<html>
<head>
<title>Print Image Only</title>
<script>
function makepage(src) {
  // We break the closing script tag in half to prevent
  // the HTML parser from seeing it as a part of
  // the *main* page.
  return "<html>\n" +
    "<head>\n" +
    "<title>Temporary Printing Window</title>\n" +
    "<script>\n" +
    "function step1() {\n" +
    "  setTimeout('step2()', 10);\n" +
    "}\n" +
    "function step2() {\n" +
    "  window.print();\n" +
    "  window.close();\n" +
    "}\n" +
    "</scr" + "ipt>\n" +
    "</head>\n" +
    "<body onLoad='step1()'>\n" +
    "<img src='" + src + "'/>\n" +
    "</body>\n" +
    "</html>\n";
}
function printme(evt) {
  // Old IE
  var image = evt.target;
  if (!image) image = window.event.srcElement;
  if (!evt) evt = window.event;
  src = image.src;
  link = "about:blank";
  var pw = window.open(link,"_new");
  pw.document.open();
  pw.document.write(makepage(src));
  pw.document.close();
}
</script>
</head>
<body>
<h1>Print Image Only</h1>
<p>When you click on the image below, just the image should print.
And the temporary window used in the process should go away
afterwards, whether you allow the print operation to go ahead or not.</p>
<p><noscript>
  <b>You have JavaScript turned off.</b>
  So this won't work. That is to be expected.
</noscript></p>
<img src="http://site.ru/images/myimg.jpg" onClick="printme(event)"/>
</body>
</html>

Источник:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху