Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Drukowanie nowego okna
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
marcini82
Witam!

Na dole strony mam odnosnik do druku:
  1. <script type="text/javascript">
  2.       function printWindow(){
  3.           var url="jakis_adres";
  4.           var oknoDruku = window.open(url, 'Drukuj', 'width=800, height=600, left=100, top=10, scrollbars=yes, resizable=yes');
  5.           return oknoDruku;
  6.       }
  7.   </script>
  8. </head>
  9. <!-- tu tresc strony -->
  10. <script type="text/javascript">
  11.        document.write('<a href="javascript: printWindow();">drukuj</a>');
  12. </body>
  13. </html>


Klikniecie powoduje wyswietlenie nowego okna z zawartoscia strony przygotowana do wydruku. I w nowym oknie mam:
Kod
<body onload="window.print()">

Ale zamiast wydruku dostaje blad na konsoli:
Kod
window.print is not a function

Dlaczego? Jak moge wydrukowac zawartosc tego wyskakujacego okna?
^bmb
Hmm testowałem i u mnie wszystko ok (IE,FF,Opera).
Dodalem tylko przy hrefie void przy wywołaniu funkcji żeby nie zwracało do window.openera obiektu

Jak przekazujesz tresc strony do tego nowego okna ?Czy tam jest powiedzmy jakis artykuł na sztywniaka wstawiony? Czy jest to strona php do której GET-em przekazujesz jakies id strony? Może w tym jest problem?

Czy nie lepiej w jednym dokumencie zastosować w CSS media screen i media print?
http://www.w3schools.com/css/css_mediatypes.asp


--
Pozdrawiam
^bmb
marcini82
Dziwne, jak probuje na prostym przykladzie to dziala dry.gif

Zawartosc nowego okna jest produkowana przez skrypt php, do ktorego podaje przez $_GET URL strony do wydrukowania zakodowany przez base64. W skrypcie rozkodowuje ten URL i pobieram strone przy pomocy CURL-a i buforowania wyjscia:
  1. <?php
  2.  
  3. /**
  4.  * zwraca pelna zawartosc strony pobranej z podanego URL-a
  5.  */
  6. function pobierzURL($url){
  7. // create a new CURL resource
  8. $ch = curl_init();
  9. // set URL and other appropriate options
  10. curl_setopt($ch, CURLOPT_URL, $url);
  11. curl_setopt($ch, CURLOPT_HEADER, false);
  12. // start buffering
  13. // grab URL and pass it to the browser
  14. curl_exec($ch);
  15. // zapisanie tresci strony w zmiennej
  16. $tresc=ob_get_contents();
  17. // stop buffering
  18. // close CURL resource, and free up system resources
  19. curl_close($ch);
  20. return $tresc;
  21. }//end pobierzURL 
  22.  
  23. ?>

(probowalem zwykle include + buforowanie, ale nie wychodzilo). A ze zwroconej zmiennej wycinam to czego nie powinno byc na wydruku i wyswietlam w oknie. I nie mam pojecia dlaczego to sie nie chce drukowac...

CSS tez jest jakims wyjsciem, ale mam wrazenie ze taka metoda uzyskam lepszy efekt.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.