Wie kann ich die Version und alle verfügbaren Informationen über die aktuell im Browser laufende Instanz Silverlight effizient und effektiv erkennen?Versionserkennung mit Silverlight
Antwort
Das Silverlight-Steuerelement hat nur ein IsVersionSupported function, die wahr/falsch zurück, wenn Sie ihm eine Versionsnummer geben, zum Beispiel:
if(slPlugin.isVersionSupported("2.0")) {
alert("I haz some flavour of Silverlight 2");
Sie können so spezifisch sein, wie Sie wollen, wenn die Build-Überprüfung, da der Versionsstring kann alle der folgenden Angaben enthalten:
- major - die große Zahl
- minor - die minor-Nummer
- bauen - die Build-Nummer
- Revision - die Revisionsnummer
So können wir für eine bestimmte Build-Nummer wie folgt überprüfen:
if(slPlugin.isVersionSupported("2.0.30523")) {
alert("I haz Silverlight 2.0.30523, but could be any revision.");
Silverlight 1.0 Beta included a control.settings.version property, which was replaced with the isVersionSupported() method. Die Idee ist, dass Sie nicht gegen bestimmte Versionen von Silverlight programmieren sollten. Vielmehr sollten Sie überprüft werden, wenn der Kunde hat mindestens verion 1,0 oder 2,0 usw.
Dass gesagt wird, können Sie die Silverlight-Versionsnummer in Firefox erhalten, indem die Silverlight-Plugin Beschreibung Überprüfung:
alert(navigator.plugins["Silverlight Plug-In"].description);
Zeigt "2.0.30523.8" auf meinem Computer.
Beachten Sie, dass es möglich ist, es zu zwingen, indem Sie alle freigegebenen Versionsnummern durchlaufen. Presumably that's what BrowserHawk does - Sie melden, welche Version von Silverlight der Client installiert hat.
Blick in Silverlight.js:
Ich habe diese von http://forums.asp.net/p/1135746/1997617.aspx#1997617, die die gleiche Verbindung ist Stu gab dir. Ich habe nur das Code-Snippet eingefügt.
Silverlight.isInstalled = function(d)
{
var c = false, a = null;
try
{
var b = null;
if(Silverlight.ua.Browser == "MSIE")
b = new ActiveXObject("AgControl.AgControl");
else
if(navigator.plugins["Silverlight Plug-In"])
{
a = document.createElement("div");
document.body.appendChild(a);
a.innerHTML = '<embed type="application/x-silverlight" />';
b = a.childNodes[0]
}
if(b.IsVersionSupported(d))
c = true;
b = null;
Silverlight.available = true
}
catch(e)
{
c=false
}
if(a)
document.body.removeChild(a);
return c
};
Wie in den obigen Kommentaren erwähnt, gibt es derzeit keinen effizienten direkten Weg, um die installierte Silverlight-Versionsnummer zu erhalten (die Cross-Browser-Plattform funktioniert).
Ich schrieb einen Beitrag zur Problemumgehung dieses Problems und erkennen die Silverlight Hauptversionsnummer (einschließlich Version 3) programmgesteuert und effizienter mit JavaScript.
Sie den Code und die Post finden:
Viel Glück!
fand diese Seite, die die Vollversion von silverlight- silverlight version (aka silverlightversion.com)
Umwelt erkennt.Version wird tun, was Sie wollen! Unterstützt seit Silverlight 2.0
nur fyi, findet diese Lösung tatsächlich die genaue Versionsnummer des installierten Plugins. –