Newsgroup: it.comp.lang.javascript
Titolo: ACROBAT READER detect

Ho ripreso il FlashDeploymentKit di Macromedia perche' le vostre prove 
sulla versione mi hanno fatto ricordare che era implementata anche la 
ricerca della versione di Flash installata :-))
Per inciso: tutte le prove con la redirezione dell'error detect 
(Cristiano/Zer0/Andrea) sui miei PC non hanno dato esito alcuno, semplice 
pagina bianca senza errori ne' risultati.
Ne e' venuto fuori lo script che segue che usa comunque una tranche in 
VBScript per il problema di IE, ma che sembra funzionare egregiamente.
Invito tutti i frequentatori del NG a provarlo, ovviamente per adesso 
solo su piattaforma Windows, i MACusers del gruppo gentilmente mi danno 
info?
Per l'aggiornamento della tabella di compatibilita', NON sviluppate il 
thread e NON modificate la tabella.
Rispondete SOLO SOTTO QUESTO MESSAGGIO strippando tutto lo script ad 
eccezione della tabella ed aggiungendo solo le righe che vi competono, 
pensero' io a farne un riassunto fra qualche giorno... insomma non 
confondetemi le idee :-)
Buon divertimento e attenzione alla rige che va a capo :-)
------------------------------------------Inizio-----
<HEAD>
    <TITLE>JsDir.com - AcrobatReader Detect [COMPLETO]</TITLE>
   <!--
   Script basato sul Flash Deployment Kit di Macromedia Versione 1.0.5
 
http://www.macromedia.com/software/flash/download/deployment_kit
   Questa versione: limitata alla sola verifica dell'esistenza del plugin
   -- possibili sviluppi:
      - verifica della versione
   - lancio automatico del download
   -->
</HEAD>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
var IEAcrobatReaderInstalled=null;
</SCRIPT>
<SCRIPT LANGUAGE="VBScript">
Private i, x
On Error Resume Next
IEAcrobatReaderInstalled = False
For i = 10 To 1 Step -1
   Set x = CreateObject("PDF.PdfCtrl." & i)
   IEAcrobatReaderInstalled = IsObject(x)
   If IEAcrobatReaderInstalled Then
       Exit For
   End If
Next
</SCRIPT>
<BODY BGCOLOR="#ffffff">
AcrobatReader Detecting Script <BR> <BR>
Basato sul <B>Flash Deployment Kit</B> di Macromedia  <BR> <BR> <BR> <BR> 
<H1>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
var AcrobatReaderInstalled=false;
if (navigator.plugins && navigator.plugins["Adobe Acrobat"] || 
IEAcrobatReaderInstalled == true )
    AcrobatReaderInstalled = true;
if (AcrobatReaderInstalled)
    document.write("Installato ");
    else
    document.write("Non Installato");
//-->
</SCRIPT>
</H1>
<HR>
<PRE>
Testato su:                                                    
 
 
[SysOp:/Browser]------[esito]---[stato]---[versione]---[tester]
 
Win98Osr2:                                                     
   Navigator 4.7        OK        (I)        5.0         RR    
   Mozilla 1.0          OK        (I)        5.0         RR    
   I Explorer5          OK        (I)        5.0         RR    
   Opera 5.12           OK        (I)        5.0         RR    
 
WinME                                                          
   Opera 6.0            OK        (I)        5.0         RR    
   Navigator 4.7        OK        (I)        5.0         RR    
   Mozilla 1.0          OK        (I)        5.0         RR    
   I Explorer 5.5       OK        (I)        5.0         RR    
 
W2Kserver                                                      
   Mozilla 1.0          OK        (X)        5.0         RR    
   I Explorer 5         OK        (X)        5.0         RR    
 
--------------------------------------                         
Legenda:                                                       
 
[esito]                                                        
        OK = funziona senza errori                             
        KO = !OK                                               
 
[stato]                                                        
        I = Plugin Installato                                  
        N = Plugin NonInstallato                               
        X = Doppio test (I + N)                                
 
[versione]                                                     
        Versione del plugin testata                            
 
[tester]                                                       
        RR = Riccardo {JsDir.com}                              
</PRE>
 
</BODY>
</HTML>
------------------------------------------Fine-----
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
 ----> itALY = it <----

 pagina bianca senza errori ne' risultati.
Ed e' infatti quel che doveva dare no?
Erano funzioni che poi andavano implementate in una pagina HTML.
-- 
C'ya,
ZER0
  :. job profile - coder.gfxer.webDesigner
"Quanti angeli danzano sulla punta di uno spillo?"

 Ed e' infatti quel che doveva dare no?
Neanche risultati?
Sia quello tuo che quello di Cristiano terminavano con un alert() che a 
me non e' uscito :-(
Cmq un po' di test ti va di farli o no? :-)


 </PRE>

 Cmq un po' di test ti va di farli o no? :-)
I test che ho fatto io danno come risultato funzionante (ovvero l'oggetto
avvalorato) lo script in JS su 3 macchine con S.O. diversi ed IE6.0, e
quello da te pubblicato non e' altro che un porting VBS dello script JS (o
viceversa) ergo che altri test devo fare?
--------------------------------
Inviato via 
http://usenet.libero.it

 viceversa) ergo che altri test devo fare?
Hai presente quel che ha fatto Cristiano? Mi basta avere la tabella 
aggiornata :-)))


 adobe partire, stranamente, poi tutto si inchioda)
Tnx, non mi aspettavo dei crash.
Piu' tardi faccio delle prove anch'io :)


 aggiornata :-)))
Cerco di spiegarmi meglio :)
Dopo aver partorito questi script in JS, scopro che - in realta' - servono a
ben poco.
Quindi, gia' questo di suo, sarebbe un motivo per non approfondire
ulteriormente la questione :)
Non solo: Tu mi chiedi un test su uno script VBScript (e quindi se vogliamo
pure OT) che altro non e' che il porting dello script in JS.
Ora: Visto che lo script JS su tutte le macchine da me testate, funziona
perfettamente (per quel che dovrebbe fare), mi spieghi a che pro dovrei mai
mettermi a testare uno script VBS che ha esattamente la stessa funzione,
visto che gia' c'e' quello in Javascript, e che preferisco di gran lunga
usare JS piuttosto che VBS? (altrimenti non sarei in questo NG)
Se tu mi vieni a dire: "Guarda, a te, a Cristiano e Andrea, su tutte le
macchine che avete provato potra' anche funzionare ma a me non funziona
correttamente", allora cerchiamo di capire PERCHE' a te non funziona lo
script JS, visto che sei tu l'eccezione e non la regola. Ti pare?
Sinceramente, non capisco la logica di tutto questo.
Nella migliore delle ipotesi, abbiamo due script che fanno le stesse cose: E
tra JS e VBS, se devo scrivere codice lato client (ma anche lato server, per
quanto mi riguarda, ma vabbe') la scelta cade ovviamente sul primo.


 per quanto mi riguarda, ma vabbe') la scelta cade ovviamente sul primo.
Torniamo alla polemica su XML, ma guarda caso questa volta sei tu che NON 
vuoi provare accrocchi...
L'altra volta ero io il purista di JS che aveva comunque trovato una 
soluzione che anche a te funzionava, ora tu proponi una soluzione che a me 
non da' risultati (il che e' diverso dal dire che non funziona no?).
Cmq non c'e' alcun problema, se ti va provalo, altrimenti non fa niente.
Non e' colpa mia ne' tua se Microsoft non implementa "plugins" nel DOM e 
bisogna andare a scomodare gli ActviveX.


 bisogna andare a scomodare gli ActviveX.
Su questo non c'e' dubbio :)
("Actvive"? potrebbe essere il nome per una nuova medicina..corro a
brevettarlo, si dice mai.. :D )


 brevettarlo, si dice mai.. :D )
LOL! Sembra una specie di viagra ^_^


, 
ri.ri...@agora.stm.itALY says...
Tabella aggiornata ad oggi per chi ha voglia di darmi una mano:
[SysOp:/Browser]------[esito]---[stato]---[versione]---[tester]
 
Win95:                                                         
   I Explorer 4.0       OK        (N)                    CR    
 
Win98Osr2:                                                     
   Navigator 4.7        OK        (I)        5.0         RR    
   Mozilla 1.0          OK        (I)        5.0         RR    
   I Explorer5          OK        (I)        5.0         RR    
   Opera 5.12           OK        (I)        5.0         RR    
   I Explorer5.5sp2     OK       (I)         5.0         CR    
 
WinME                                                          
   Opera 6.0            OK        (I)        5.0         RR    
   Navigator 4.7        OK        (I)        5.0         RR    
   Mozilla 1.0          OK        (I)        5.0         RR    
   I Explorer 5.5       OK        (I)        5.0         RR    
 
W2Kserver                                                      
   Mozilla 1.0          OK        (X)        5.0         RR    
   I Explorer 5         OK        (X)        5.0         RR    
 
W2Kpro                                                         
   Mozilla 1.0          OK        (I)        5.0         Kalle
   I Explorer 6         OK        (I)        5.0         Kalle
   K-Meleon 0.6         KO                               Kalle
   Opera 6.0            OK        (I)        5.0         Kalle
--------------------------------------                         
Legenda:                                                       
 
[esito]                                                        
        OK = funziona senza errori                             
        KO = !OK                                               
 
[stato]                                                        
        I = Plugin Installato                                  
        N = Plugin NonInstallato                               
        X = Doppio test (I + N)                                
 
[versione]                                                     
        Versione del plugin testata                            
 
[tester]                                                       
        RR = Riccardo {JsDir.com}                              
        Kalle = ilpw
        CR = Cristiano Larghi (iclj)


> Andrea.... questo sta di nuovo a polemicare... ma ce l'ha sempre con me?
:-))
No, ma si vede che lo stimoli: non concede mica polemiche a tutti... Da dove
l'espressione "sparare a zero"?
Ad ogni modo, batti e ribatti a parte, sono d'accordo con lui: fosse anche
solo per esercizio di stile, preferisco anche io capire cosa non ti ha
funzionato e fare tutto in js. D'altro canto nella scelta di una soluzione
finale non č affatto stupido usare vbs e, anche se partono due engine di
scripting, partono sul client e in fondo non č un gran danno.
Ormai, merito anche di Zer0, sono fedele alla causa e preferisco di gran
lunga la prima soluzione. Mi butto due o tre ritardi alle spalle e in
giornata conto di postarti uno script completo (e testato).
Saludos

 LOL! Sembra una specie di viagra ^_^
Mhm. Ci possiamo pensare :D


Il 01 Ago 2002, 12:30, 
zer0....@libero.it
 (ZER0) ha scritto:
Aggiungo in coda, altrimenti il post potrebbe esser scambiato davvero per
"polemica".
Il punto e', come ho scritto nel post precedente ma nn vorrei che non fosse
visto in mezzo a quel "mare" di caratteri, che mi manca un passaggio:
Ovvero, tra il "non mi funziona lo script" e la pubblicazione dello script
in VBS.
Non capisco perche' non hai fatto, tra le due cose, notare il difetto e -
assieme a tutti, com'e' spirito di questo NG - capire cosa non andava,
invece di parte con un altro linguaggio ex-novo. Penso che ne avremmo tratto
tutti beneficio.
Magari scoprivamo cosa non andava, che in talune condizioni lo script JS ha
comportamenti errati, magari veniva fuori che per farlo funzionare
correttamente in JS, la cura era peggiore della malattia.. Oppure trovavamo
il modo (che Andrea cerca tanto) di istanziare un oggetto tramite la sua
Class ID.
Tutto questo sarebbe stato utile, interessante, e avrebbe portato nuove
conoscenze ed informazioni a tutti noi riguardo il mondo di JScript su
IEwin.
Mi rammarico solo che nn sia successo, e non c'e' "polemica" in questo.
Questo e' il succo del discorso.
Poi, come dice Andrea, se posso far qualcosa in JS la faccio, a meno che non
debba fare salti mortali apocalittici e, quindi, soppesando le cose, ne
risulti che non ne valga la pena.
Spero di esser stato piu' chiaro e d'esser risultato "meno polemico" :)
Anyway, se vuoi fare verbalmente "a pugni", "t'aspetto fuori" :P


[megacut]
Mi sono messo di buona volonta' nonostante i miei ritardi e ho cozzato
contro qualche problemino.
1) in una qualche maniera la gestione degli errori di cui si parlava con
Zer0 e Cristiano su IE6 mi ha causato qualche volta (sto cercando di capire
come, quando, dove e perche') l'interruzione dell'esecuzione del programma
al primo errore.
2) IE5.0 mi ha gettato nello sconforto piu' totale. Prove fatte su
Win2000Pro e su Win98 mi hanno completamente rifiutato la gestione
dell'evento onerror su window. Posso scrivere i gestori che mi pare ma
vengono ignorati e mi compare il messaggio di errore di Explorer.
Sono andato su MSDN, e ho verificato che pure il loro esempio (scritto in
effetti come il mio tentativo) non funziona su IE5.0.
In calce alla pagina MS fa notare come sempre la tabella delle
compatibilita':
Win16: 3.02
Win32: 3.02
WinCE: 4.0
Unix: 4.0
Mac: 3.02
??? (in swahili significa: "ma che cazzo")
Non ho un IE4 su cui testare e comincio a innervosirmi.
Soluzioni che posso vedere ora senza ulteriori vostri test:
1) pur di scrivere tutto in js scriviamo una caterva di accrocchi (es:
window.onerror per IE4 se funziona, un eval di una stringa try&catch per gli
altri IE, navigator.plugins per il resto del mondo normale)
2) recuperiamo la mia idea di scrivere il tag object in html e sopportiamo
che Acrobat4 venga aperto e chiuso, il 5 mi si č comportato naturalmente e
ha effettuato solo l'istanza dell'oggetto. Ma come si comporta un Mac?
3) forse la soluzione piů naturale, se veramente sussistono i bug che ho
visto, č proprio quella di Macromedia che ha postato Riccardo e allora
vediamo se si risolvono i problemi riscontrati da Catarsi sulla Mela.
4) andiamo a vangare?
P.S.
Due cose a latere, ma non troppo.
- Mi piacerebbe continuare a cercare come istanziare gli oggetti tramite
classid.
- Zer0 mi faceva notare una simpatica alternativa a navigator.plugins per
NS: il metodo open supporta parecchi MimeType e non solo "text/html" come
avviene in IE.

 avviene in IE.
Almeno secondo reference JS 1.3 della Netscape.. sono queste le cose che ti
fanno desiderare di impalare la M$ per non averle implementate..


 il plugin ce l'ho, ma ottengo "non installato" con tutti i browser.
Che browser utilizzi su Mac?
Bisogna vedere che tipo di approccio usano per la gestione del plugins..
intanto per i browser che ce l'hanno, potresti provare ad "iterare" la
plugins? Cosi' vediamo che "label" ti sortiscono fuori.
Eventualmente, potresti provare, per curiosita', a far girare questo script
e vedere se tutti tuoi browser restituiscono "null" oppure no?
<script>
alert(document.open("application/pdf"));
</script>
.. ammesso e concesso di aver azzeccato mimetype :)


 il plugin ce l'ho, ma ottengo "non installato" con tutti i browser.
Anche Netscape?
Se scrivi about:plugins nella location che ti esce?
I 22MEuro della fiorentina? :-))


 spiegato tutto. 
Beh, ormai sono curioso :-))


 
Ciao,
mi permetto di introdurre un elemento che può esservi utile nel dirimere 
questo scambio dialettico sull'opportunità di usare o meno VBScript nel 
plugin detector di cui state discutendo.    
Purtroppo è problema noto che alcune versioni IE-MAC non solo non 
supportano VBScript ma causano pure il trigger di popup di errore se 
all'interno del sorgente indiduano riferimenti a VBScript.  Volendo 
operare in VBSript occorre dunque nascondere ai browser MAC il 
codice vbscript rendendo il tutto decisamente poco elegante.
Personalmente preferisco plugin sniffer interamente in Javascript, se ne 
trovano a bizzeffe in rete, più o meno raffinati, a seconda delle esigenze 
( redirect, download del pluginc, version check...).
Un suggerimento: se gradite feedback dai partecipanti al newsgroups 
sicuramente un semplice link ad una testpage è molto più convincente ;) 
ciao!
armaged
 
 

 sicuramente un semplice link ad una testpage è molto più convincente ;)
E' vero anche questo, solo che io personalmente purtroppo non ho un granche'
modo di uploadare una pagina on line, al momento. :)
P.S.
Me ne andro' in vacanza per qualche gg.. non so se potro' controllare
posta/NG.. e la cosa mi scoccia perche' volevo continuare l'avventura sul
plugin detecting! :°
.. Al limite mi allineero' e contribuiro' tramite Andrea vocalmente :P


 sarebbe stato meglio?
Se ne fossi stato capace forse si.
Ma come io credo di aver capito quali sono le tue conoscenze credo che 
anche tu ormai dovresti avere una vaga idea di quali siano le mie no?
Senno' a che pro chiederti una cosa precisa da testare? Per farmi del 
male?
Intendo dire che spesso vedo dei post cui non so rispondere e so per 
certo che appena capiti sul gruppo dai la soluzione.
-- 
Ciao, Riccardo.
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
    itALY = it

 tutti beneficio.
Mi fai un piacere?
Vai a cercare con Google il messaggio di "The Turkish" (che tra l'altro 
brilla per l'assenza, magari sta ancora aspettando la risposta in e-mail) 
con subject "[Detect] Detect Acrobat".
Poi leggi la mia risposta. Pero' sii lucido quando la leggi :-)
Capirai da dov'e' uscito lo script in VBS, vedrai che era incompleto 
perche' non sapevo come sistemarlo (proprio quello in VBS) e sopratutto 
vedrai fin dall'inizio la mia richiesta di aiuto per sistemarlo.
La risposta di Andrea e la discussione con Cristiano sinceramente mi 
hanno spiazzato perche' hanno messo in mezzo delle cose che io ignoro ed 
infatti mi son fatto da parte finche' non son comparse due proposte 
FullJS.
Queste le ho provate ed ho dato il mio responso. Nel frattempo ho trovato 
il modo (grazie a Cristiano che ha messo in mezzo [ "PDF.PdfCtrl."+i ]) 
di sistemare la mia proposta.
Inutile continuare nel thread ne ho iniziato un altro.
... poi sei arrivato tu :-)))
-- 
Ciao, Riccardo.
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------


 lunga la prima soluzione. 
E su questo non ho nulla da obiettare.
-- 
Ciao, Riccardo.
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
    itALY = it

 avviene in IE.
Non so di che parli a meno di altre info, ma non credo che NS ci fara' 
venire il mal di testa no? :-)
-- 
Ciao, Riccardo.
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
    itALY = it

 fanno desiderare di impalare la M$ per non averle implementate..
WoW!!!
Una volta tanto (ultimamente) sono pienamente e incondizionatamente 
d'accordo con te ^_^
-- 
Ciao, Riccardo.
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
    itALY = it

 d'accordo con te ^_^
Se il document.open per IE fosse fatto come dio comanda, avremmo la
possibilita' di fare realmente cio' che piu' ci pare e piace con JS.. oltre
che gestire in modo sano i plug-ins.


 ma non credo che NS ci fara' venire il mal di testa no? :-)
Anche lui ci mette del suo. Porto ad esempio la mia emicrania di ieri anche
se divento OT rispetto al thread.
NS4.x: prova a mettere un'immagine in una tabella annidata in un'altra
tabella, dalle un src che non esiste e onerror="alert('errore')"
A seconda del valore di x direi che o non viene scatenato l'errore o viene
scatenato due volte. Poi prova ad aggiungere qualche riga prima o dopo
quella dell'immagine: se prima veniva scatenato due volte ora possono
diventare anche tre o quattro...

 diventare anche tre o quattro...
Oppure addirittura "zero", ed e' questo lo sconcertante.. in quanto nn puoi
ricavarne una regola.


 undefined
Per curiosita', se provi con:
alert(document.open("pippo/frankuzzo"));
.. ti da' gli stessi risultati?


 the features.
Il mondo e' bello perche' e' vario :-))
Scusa, ma piuttosto che mettere dentro 'na zozzeria M$ come questa 
preferisco continuare la mia strada ^_^
Cmq se volete dei test li posso fare (a patto che voi facciate i miei e' 
ovvio :-)))
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------


 VBScript fa le bizze.
Infatti per il MAC spero in un intevento divino (Balestra o Carena che se 
non ricordo male pasticcia sul MAC anche lui).
In ogni caso bisognerebbe trovare anche qualcuno che esegua prove su 
macchine Linux :-(
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------


 sicuramente un semplice link ad una testpage è molto più convincente ;) 
Beh, si, ma si suppone che chi venga in un gruppo come questo non abbia 
difficolta' a copYncollare, salvare ed aprire.
Anche perche' in ogni caso quel che ha salvato resta utile per usi futuri 
no? :-P


non ricordo male pasticcia sul MAC anche lui).
I maligni direbbero: di vino
ma sono, appunto, maligni
(per quanto mi concerne ovviamente, Balestra puo' mantenere tutto
attaccato)
 ma ricordi solo a meta':
e' vero che pasticcio, ma non su MAC ;-)
Il maccartista e' Catarsi, se non sbaglio
che essendo livornese angloparlante apprezzera' il para-neo-logismo
 ;-)
va bene  va bene MAC artista
Quanto al test ho combinato una delle mie, e adesso IE5.5 non mi apre
piu' i file
non farebbe testo un mio controllo, piu' di quanto sia utile testare
un computer preso a craniate