Schrift
[thread]2307[/thread]

Probleme mit isComponentInstalled



<< >> 4 Einträge, 1 Seite
morph
 2006-07-25 10:39
#24852 #24852
User since
2007-12-06
79 Artikel
BenutzerIn
[Homepage] [default_avatar]
Servus Gemeinde.

Ich stehe vor einem Problem, dass mich regelrecht kirre macht. Meine Recherchen sagen mir, dass ich alles richtig mache, aber dem ist wahrscheinlich nicht so. Ich seh' den Wald vor lauter Bäumen nicht.

Zur Sache:
Der Kunde wünscht eine eingebettete Dokumenten-Vorschau, bevor das File auf den Server geladen wird. Ich möchte also über ein <OBJECT>, bzw. <EMBED> Tag den AcrobatReader einbinden. Jedoch möchte ich zuvor abprüfen, ob das Teil überhaupt installiert, bzw. ein Plugin vorhanden ist.

Folgender Code funktioniert einwandfrei in Gecko-Browsern und auch im IE, bzw. Opera. Das Dokument, respektive der Reader wird ordentlich eingebunden.
Code: (dl )
1
2
3
4
5
<object classid="CLSID:CA8A9780-280D-11CF-A24D-444553540000" type="application/pdf" data="/docs/beispiel.pdf" width="100%" height="100%">
<param name="src" value="/docs/beispiel.pdf">
<embed src="/docs/beispiel.pdf" type="application/pdf" width="100%" height="100%">
<noembed>Ihr Browser kann den MIME Typ application/pdf leider nicht verarbeiten!</noembed>
</object>


Das Ganze passiert template-basiert, sodass in der Quelle folgendes steht:
Code: (dl )
1
2
object classid="CLSID:<%clsid%>" type="<%doctype%>" data="<%document%>" width="100%" height="100%">
[...etc...]


Es werden die korrekten Werte übergeben. Das habe ich mehrmals geprüft!

Die Prüfung auf navigator.mimeTypes (Gecko-Browser) funzt einwadfrei, das habe ich auf zwei Rechnern getestet. Auf einem ist Acrobat installiert und auf dem Testsystem nicht. Falls das Plugin nicht vorhanden ist, kann der User es installieren.

Im Internet Explorer habe ich die Probleme. Folgender Code sollte eigentlich funktionieren, aber irgendwie will er nicht.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[...]
function plugIE() {
var b=document.body;
b.addBehavior("#default#clientCaps");
return (b.isComponentInstalled("{CA8A9780-280D-11CF-A24D-444553540000}", "ComponentID"));
}
if(is_ie) r=plugIE(); else r=plugNS();
if(r){
// Das Dokument wird eingebunden;
}
else {
// Ein Hinweis wird ausgegeben;
}
[...]


Auch hier erfolgt das Einsetzen der CLSID templatebasiert. Auch hier werden die korrekten Werte übergeben. Auch hier habe ich das mehrmals geprüft.

Die Funktion plugIE() liefert immer false, obwohl das <OBJECT> Tag den Reader über den betreffenden Schlüssel (pdf.ocx) korrekt einbinden kann.

Ich bin in der Tat ratlos. :gruebel:

Bin für jede Anregung dankbar.

-uw
esskar
 2006-07-25 11:47
#24853 #24853
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
versuch es mal so

Code: (dl )
1
2
3
function plugIE() {
return oClientCaps.isComponentInstalled("{CA8A9780-280D-11CF-A24D-444553540000}", "ComponentID");
}


und dann im HTML

Code: (dl )
1
2
3
4
5
6
...
<body>
<MSIE:CLIENTCAPS ID="oClientCaps" />
...
</body>
</html>
morph
 2006-07-26 12:49
#24854 #24854
User since
2007-12-06
79 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hi esskar,

vielen Dank für Deine Anregung. Leider kommt dabei das Selbe heraus.

Der korrekte Code für Dein Besipiel lautet übrigens:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html XMLNS:MSIE>
<head>
[...]
<style type="text/css">
@media all {
IE\:clientCaps {behavior:url(#default#clientcaps)}
}
</style>
</head>
<body>
<MSIE:clientCaps id="oClientCaps" />
[...]
<script language="JavaScript">
function plugIE()
{
return oClientCaps.isComponentInstalled("{CA8A9780-280D-11CF-A24D-444553540000}", "ComponentID"));
}
[...]
</script>
[...]


Ist also genau das Gleiche, wie bei mir, nur XML konform.

-uw\n\n

<!--EDIT|TbHoCne|1153903846-->
morph
 2006-07-27 00:58
#24855 #24855
User since
2007-12-06
79 Artikel
BenutzerIn
[Homepage] [default_avatar]
So Ihr lieben,

nu weiß ich was da schief gelaufen ist. es gibt eine Liste von ausgewählten Komponenten, die in den default Capabilities abfragbar sind. Acrobat und Office, gehören nicht dazu.

Als dann.

-uw
<< >> 4 Einträge, 1 Seite



View all threads created 2006-07-25 10:39.