# Browser Plugins mit JavaScript auslesen.



## BitMan (13. Februar 2008)

Hallo Leute, 

ich bin c# Prgrammierer und Hobby-Fotograf. 

Momentan bastel an meiner Webseite wo ich fotos von Events und privat online stellen möchte. Dazu braucht es eine Benutzeranmeldung und ein Rechte-System. Also mache ich die Seite mit PHP, mySQL und JavaScript wo bei ich von letzterem wenig Ahnung habe. 

Damit ich den Benutzer möglichst eindeutig identifizieren kann arbeite ich mit COOKIES, SESSION und Schreib das in der Datenbank weg. Nun möchte ich mit JavaScript die Browser Plugins auslesen und für eine Identifizierung heranziehen. 

Folgendes Script habe ich entwickelt:

```
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script language="javascript">
function MyTest()
{
	var a = navigator.plugins.length;
	document.write(a);
	var b = "";
	for(i=0;i<a;i++)
	{
		b = navigator.plugins[i].name;
		document.writeln(b);
	}
}
</script>
<title>Unbenanntes Dokument</title>
</head>

<body onload="MyTest()">
</body>
</html>
```

Probleme: 
FireFox zeigt mir die Plugins, aber einige mehrfach und ohne Versoinsnummern die mir wichtig sind. Ausserdem zeigt der FireFox danach eine Sanduhr als wäre er ewig am Laden ist aber mit der Seite fertig. 

IE zeigt eine leere Seite. 

Wo ist mein Denkfehler? 

cu s00n
BitMan


----------



## Sven Mintel (13. Februar 2008)

Was die Sanduhr betrifft: write() solltest du während des Ladens der Seite benutzen, und nicht danach, wie es bei dir momentan geschieht.

Zum IE: beim IE ist die Plugin-Auflistung immer leer.
Eine Auflistung der Plugins ist dort auch auf anderem Weg nicht verfügbar, du kannst nur bestimmte Plugins auf Vorhandensein Testen anhand ihrer ClassID.

Ein Beispielskript, wo du siehst, wie das funktioniert, findest du unter http://www.tutorials.de/forum/javascript-ajax/181490-flash-detection-skript.html


----------



## BitMan (13. Februar 2008)

Hi Sven, 

an welcher Stelle müsste meine JavaScript Funktion dann ausgeführt werden? Nicht al OnLoad?


Sven Mintel hat gesagt.:


> Was die Sanduhr betrifft: write() solltest du während des Ladens der Seite benutzen, und nicht danach, wie es bei dir momentan geschieht.



Die Liste der Plugins soll möglich sein. Ein Freund arbeitet bei einer Firma die mit einem Trick einen User darüber eindeutig identifizieren können. Aber er will mir nicht verraten wie. 


Sven Mintel hat gesagt.:


> Zum IE: beim IE ist die Plugin-Auflistung immer leer.
> Eine Auflistung der Plugins ist dort auch auf anderem Weg nicht verfügbar, du kannst nur bestimmte Plugins auf Vorhandensein Testen anhand ihrer ClassID.
> 
> Ein Beispielskript, wo du siehst, wie das funktioniert, findest du unter http://www.tutorials.de/forum/javascript-ajax/181490-flash-detection-skript.html



LG BitMan


----------

