HighDots Forums  

Stampa e stili

Javascript (Italian) Il linguaggio JavaScript (it.comp.lang.javascript)


Discuss Stampa e stili in the Javascript (Italian) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Michele Locati
 
Posts: n/a

Default Stampa e stili - 12-13-2004 , 06:31 AM






Ciao a tutti

ho un piccolo problema che non riesco a risolvere, neppure dopo un'ora
di ricerca con Google.
Dovrei impostare l'altezza di stampa di un oggetto dimanicamente via
JavaScript.

So già che è possibile usare gli stili, specificando media="print" in
una forma del tipo:

<STYLE type="text/css" media="print">
DIV#Pippo
{
height:3cm;
}
</STYLE>
....
<DIV id="Pippo">Ciao!</DIV>

Quello che non riesco a fare è impostare dinamicamente l'altezza per la
sola stampa via javascript: se faccio una cosa del tipo

<SCRIPT type="text/javascript" language="javascript">
function ImpostaAltezza(h)
{
var p;
p=document.getElementById("Pippo");
p.style.height=h+"cm";
}
</SCRIPT>

Il codice mi ridimensiona "Pippo" anche a video, ma io lo vorrei fare
solo per la stampa.

Certo, potrei definire un CSS con tutte le altezze:

<STYLE type="text/css" media="print">
..Alt1
{
height:1cm;
}
..Alt2
{
height:2cm;
}
..Alt3
{
height:3cm;
}
/* Eccetera */
</STYLE>

ed usare una funzione del tipo

<SCRIPT type="text/javascript" language="javascript">
function ImpostaAltezza(h)
{
var p;
p=document.getElementById("Pippo");
p.className="Alt"+h;
}
</SCRIPT>

Ma:
1) mi sembra abbastanza tedioso e non tanto furbo
2) dovrei prevedere un'infinità di classi (dato che l'altezza potrebbe
variare da 0.1cm a 100cm


Qualcuno mi sa dare un'aiutino?

Grazie
Michele

Reply With Quote
  #2  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: Stampa e stili - 12-13-2004 , 06:35 AM






In data Mon, 13 Dec 2004 11:31:19 GMT, Michele Locati ha scritto:

Quote:
Ciao a tutti

ho un piccolo problema che non riesco a risolvere, neppure dopo un'ora
di ricerca con Google.
Può esserti utile l'evento onbeforeprint / onafterprint? (se sì verifica la
compatibilità, io lo uso solo in intranet-IE). Esegui la tua function
onbeforeprint e la riesegui per riadattare a video onafterprint (a video
non noterai variazioni di layout).

--
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
B.M.


Reply With Quote
  #3  
Old   
Michele Locati
 
Posts: n/a

Default Re: Stampa e stili - 12-13-2004 , 07:03 AM



Cristiano Larghi ha scritto:
Quote:
Può esserti utile l'evento onbeforeprint / onafterprint? (se sì verifica la
compatibilità, io lo uso solo in intranet-IE). Esegui la tua function
onbeforeprint e la riesegui per riadattare a video onafterprint (a video
non noterai variazioni di layout).
Grazie mille per la risposta (e per la rapidità)!
Ho fatto delle prove: con IE6 funziona alla grande, ma né Firefox 1.0 né
né Opera 7.23 ne vogliono sapere: gli eventi window.onbeforeprint e
window.onafterprint non vengono generati.
Tanto per provare ho verificato anche
window.document.onbeforeprint/window.document.onafterprint e
document.body.onbeforeprint/document.body.onafterprint... senza successo
di nuovo.

Grazie comunque...

Michele


Reply With Quote
  #4  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: Stampa e stili - 12-13-2004 , 08:04 AM



In data Mon, 13 Dec 2004 12:03:05 GMT, Michele Locati ha scritto:

Quote:
Ho fatto delle prove: con IE6 funziona alla grande, ma né Firefox 1.0 né
né Opera 7.23 ne vogliono sapere: gli eventi window.onbeforeprint e
window.onafterprint non vengono generati.
Mi spiace ma non mi vengono in mente altre soluzioni

--
"E' l' ignoranza che crea l'intolleranza
di gente cieca e senza coscienza"
S.S.S.


Reply With Quote
  #5  
Old   
ZER0
 
Posts: n/a

Default Re: Stampa e stili - 12-14-2004 , 03:30 AM



On Mon, 13 Dec 2004 22:35:09 GMT, Agostino De Matteis wrote:

Quote:
Dovresti provare a vedere se modificando i dati degli elementi
style>, con media "print" relativi alla "rule" che ti serve, da
javascript poi vengono usati al momento della stampa.

Un esempio su come accedere ai dati degli elementi <style> prendendo
esempio dal tuo codice:
[cut]

Ammetto che non ho letto tutto il tuo codice a dovere, ma..

Quote:
li=document.getElementsByTagName("style"); // elementi style
Perche' utilizzi quest'approccio e non direttamente la styleSheets? Almeno
ti eviti l'if successivo.

E poi per fare quello che richiedeva l'utente, non sarebbe bastato un
codice piu' stringato, tipo (scritto al volo, quindi lascia stare le misure
in px):

<style type="text/css" media="print">
div#pippo{
height:20px;
}
</style>

<style type="text/css">
div#pippo{
height:20px;
}
</style>

</head>

<body>

<script type="text/javascript">

var css=document.styleSheets||null,cssRules=null;
if (css && css[0]){
cssRules=css[0].rules||css[0].cssRules||null;
};

if (cssRules && cssRules[0]){
cssRules[0].style.height="40px";
};


</script>

?


--
ZER0://coder.gfxer.web-designer/

~ Non esistono donne brutte. Dipende solo da quanta vodka bevi.
(proverbio russo)



Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.