PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kann man auslesen, ob das Quicktime-Plugin installiert ist?


ernesto.che
2010-05-13, 18:03:20
Kann man auslesen, ob das Quicktime Plugin installiert ist? Wie geht denn das?

Passieren soll folgendes: Wenn Quicktime Plugin installiert ist, soll ein Quicktime mov(ie) abgespielt werden. Ist kein installiert, soll die Flash Variante des Videos abgespielt werden.

esistich
2010-05-13, 21:10:05
Meines Wissens nach gibt es keine direkte Abfrage über installierte Erweiterungen, man kann aber in einer Schleife alle installierten Plugins auslesen.


<script type="text/javascript" language="javascript">

function pluginExist (search) {
var r = false ;
if (navigator.plugins && navigator.plugins.length > 0 ) {
var plugin = "" ;
for (var i = 0; i < navigator.plugins.length; i++ ) {
plugin = navigator.plugins[i].name.toLowerCase();
//alert (plugin);
if (plugin.match(search)) {
r = true;
}
}
}
return r;
}

if (pluginExist ("quicktime") === true) {
alert ("Plugin installiert");
} else {
alert ("Plugin nicht gefunden");
}
</script>

ernesto.che
2010-05-13, 21:27:32
Sehr cool, danke. Es ist nie schön, wenn man der Willkür "seiner" Programmierer ausgesetzt ist, die sich - wenn sie auf etwas keine Lust haben oder es ihnen nicht gefällt, gerne mal querstellen.
Aber jetzt habe ich ja etwas in der Hand. :)

DanMan
2010-05-14, 12:50:11
Das navigator-Objekt wird u.U. aber nicht in allen Browsern funktionieren.

Könnte außerdem auch funktionieren, indem du 2 <object> Elemente verschachtelst. Das äußere QT, das innere Flash. Allerdings könnte das auch nicht browser-übergreifend funktionieren.

Ich würds sowieso eher andersherum machen, weil Flash weiter verbreitet ist.

ernesto.che
2010-05-14, 13:13:15
Habe es gerade mal auf IE @ Win XP versucht: geht leider nicht. :confused:
Safari unter 10.6 und XP kein Problem.
Quicktime sieht besser aus, deswegen soll jeder von uns Quicktime bekommen, wenn er das Plugin installiert hat. Wenn nicht, gibt es eben Flash.

DanMan
2010-05-14, 13:23:56
<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
codebase="http://www.apple.com/qtactivex/qtplugin.cab" width="320" height="260">
<param name="src" value="meinfilm.mov" />
<param name="controller" value="true" />
<param name="autoplay" value="false" />
<!--[if !IE]>-->
<object type="video/quicktime" data="meinfilm.mov" width="320" height="260">
<param name="autoplay" value="false" />
<param name="controller" value="true" />
</object>
<!--<![endif]-->
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"
width="300" height="120">
<param name="movie" value="meinflash.swf">
<param name="quality" value="high">
<param name="bgcolor" value="#FFFFFF">
<!--[if !IE]> <-->
<object data="meinflash.swf"
width="300" height="120" type="application/x-shockwave-flash">
<param name="quality" value="high">
<param name="bgcolor" value="#FFFFFF">
<param name="pluginurl" value="http://www.macromedia.com/go/getflashplayer">
I decided to use a proprietary technology instead of open
standards to display my site, so you can't view it,
sorry. Basically I intentionally made the decision to limit my
site only to people who are able to use a piece of software that
is controlled by a single company, and since apparently you are
either using a platform that doesn't support that software (like
the iPhone or other device), or you rightly made the choice not
to install the software, I am considering you to be not worthy
enough to see my content. I recommend that you close this page
and never return to my site, since I obviously don't care about
you enough.
</object>
<!--> <![endif]-->
</object>
</object>
Quelle (http://www.alistapart.com/articles/byebyeembed/)

Ein Monster, ich weiß.

esistich
2010-05-14, 14:44:21
Ich habe nur getestet ob der IE die Plugin-Funktion unterstützt, was er auch tut, nur gibt er kein Array mit den Plugins zurück wie die anderen Browser.

Du müsstest zwei mal Abfragen, einmal für die normalen Browser und einmal für diesen IE. Wobei bei letzterem zusätzlich noch eine Bestätigung vom Benutzer erfolgen muss (die sind es IMO gewohnt).



<script type="text/javascript" language="javascript">
function activeXExist (search) {
r=false;
if(window.ActiveXObject) {
var plugin=null;
try{
plugin=new ActiveXObject(search);
} catch (e) {
return;
}
if(plugin) {
r=true;
}
}
return r;
}

function pluginExist(search) {
var r=false;
if (navigator.plugins && navigator.plugins.length > 0 ) {
var plugin="";
for (var i=0;i<navigator.plugins.length;i++) {
plugin=navigator.plugins[i].name.toLowerCase();
//alert (plugin);
if (plugin.match(search.toLowerCase())) {
r=true;
}
}
}
return r;
}

if (pluginExist("quicktime") === true || activeXExist("QuickTimeCheckObject.QuickTimeCheck.1") === true) {
alert ("Plugin installiert");
} else {
alert ("Plugin nicht gefunden") ;
}
</script>

Gast
2011-01-12, 17:17:41
http://developer.apple.com/internet/webcontent/detectplugins.html

hier gibt es genau das, was gesucht ist. (Hab's nämlich heute selbst gebraucht).

Für die, die nicht so fit sind mit Javascript gibt es dann unten zwei Beispiele. Eine davon ist "Detect and redirect example".
Wenn Quicktime installiert, dann bleibt die Seite, wenn nicht installiert, dann wird eine alternativ-Seite geladen.

martin@steinherr.de