Newsgroup: it.comp.lang.javascript
Titolo: Stampa. Problemi con IE5

Mi permetto di postare una richiesta con la speranza di non disturbare con
un problema trito e ritrito.
Tanto tempo fa sul NG era stata postata una procedurina in javascript che
risolveva egregiamente l'annoso problema cross-browser della stampa della
pagina.
In pratica si riusciva a fare in modo che anche il maledetto IE4 si comporti
come NN quando gli dai in pasto self.print().
Tuttavia la funzioncina aveva qualche pecca. Nel senso che, se dopo aver
aperto la finestra di dialogo decidevi di annullare il comando, compariva un
messaggio di errore.
Smucinando di qua, smanazzando di la, alla fine riuscii a far si che (con
IE4, si badi) il comando di stampa partisse senza passare dalla finestra di
dialogo, bypassando completamente il problema.
(In calce c'è il codice)
Con l'avvento di IE5 (Bill, sono contento che ti smembrino!) :-) , la
finestra di dialogo ricompare. E se uno preme annulla tutto va di nuovo a
donnine allegre.
Ho provato a smanettare.
Ma questa volta non ci sono riuscito.
:-(
Chiedo aiuto ai guru con la doverosa umiltà propria di chi è perfettamente
cosciente di non essere un programmatore javascript, ma un semplice, banale
smanettone.
Codice
function stampalo()
{
if (document.all)
{
var OLECMDID_PRINT = 6;
var OLECMDEXECOPT_DONTPROMPTUSER = 2;
var OLECMDEXECOPT_PROMPTUSER = 2;
var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0
CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
WebBrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER);
WebBrowser1.outerHTML = "";
}
else
{
self.print()
}
}
Cordialissimi saluti da Wolfie.

 wrote in message
news:8cf5dh$ne$1...@suite03.caspur.it...


> donnine allegre.
Mancava alla mia collezione. Grazie per il contributo :-))

Mancava alla mia collezione. Grazie per il contributo :-))
Beh, se vuoi ce ne sono altre, tipo: *impiegate stradali*
:-)
Ora basta, neh?
Sennò i guru si arrabbiano.
Saluti da Wolfie.

if (document.all)
{
   if (navigator.appVersion.charAt(22) > 4)
      self.print();
   else
   {
      Aui ci scrivi il codice che usa l'ActiveX che hai postato tu
   }
}
else
   self.print();
Ciao
Giuseppe Di Natale
gdin...@camomillaitalia.it
------------------------------------------
JS Labs - FAQ di it.comp.lang.javascript
http://jslabs.webhostme.com
FlyScript by JS Labs, JS in 3 click
http://jslabs.webhostme.com/servizi/flyscript/
------------------------------------------


Ti ringrazio, Giuseppe.
Comunque ho scoperto il modo di inibire la finestra di dialogo anche per
IE5, risolvendo il problema.
Era solo una questione di numeretti:
al posto di
var OLECMDEXECOPT_PROMPTUSER = 2;
basta mettere
var OLECMDEXECOPT_PROMPTUSER = 6;
... e il gioco è fatto.
Riposto lo script per chiunque ne avesse necessità.
Questo script funziona, Bill Gates (Guglielmo Cancelli) permettendo....
:-)
****************************************************************************
**********************
function stampalo()
{
if (document.all)
{
var OLECMDID_PRINT = 6;
var OLECMDEXECOPT_DONTPROMPTUSER = 2;
var OLECMDEXECOPT_PROMPTUSER = 6;
var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0
CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
WebBrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER);
WebBrowser1.outerHTML = "";
}
else
{
self.print()
}
}
****************************************************************************
**********************