• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Browser-Check

none2

New member
Hallo Ihr Wissenden,

als DAU und Neuling in diesem Forum bitte ich Euch um Eure Hilfe.

Für meine Web-Seite brauche ich ein Script, welches den vom User verwendeten Browser ausgibt, so wie auf der Web-Seite: Welcher Browser? ? Google !

Ich möchte dieses Script auf meiner Homepage einbinden damit ich den Usern mitteilen kann, warum ihr Browser die Seite (Joomla3) nicht richtig darstellt.

Das nachfolgende Skript gibt als Ergebnis folgendes aus:

Code:
<script type="text/javascript">
// <![CDATA[
document.write(navigator.userAgent);
// ]]>
</script>

FireFox: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
CHROME:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36?

Nun kann man nicht zwingend davon ausgehen, dass die Normal-User etwas mit diesen Daten anfangen kann und will. Deshalb wäre es mir lieber, dass nur der Browser-Name und die Version angezeigt wird.

Könnt Ihr mir bitte helfen???

VG
none2
 
Zuletzt bearbeitet:
Hallo rico2009,

vielen Dank für Dein Feedback. Auch wenn ich über keinerlei JavaScript-Kenntnisse verfüge, werde ich versuchen Deinen Vorschlag zu testen... :)

VG
none2
 
Hallo rico2009,

vielen Dnak für Dein Angebot!
Wenn ich das nachfolgende Script nehme, bekomme ich zum Beispiel die Rückmeldung 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0'.

Code:
<strong>Browser:</strong> <script type="text/javascript">
// <![CDATA[
document.write(navigator.userAgent);
// ]]>
</script>

Wie kann/muss man das Script ändern, damit ich lediglich 'Firefox/33.0' angezeigt bekomme? :icon7:

VG
none2
 
So oder so ähnlich:

Code:
<script type="text/javascript">
  document.write(navigator.userAgent.substring(navigator.userAgent.lastIndexOf(" "), navigator.userAgent.length));
</script>
 
Hallo rico2009,

vielen Dank für Deine Hilfe! Das Ergebins funktioniert auf meinem Rechner wie folgt:


Firefox Firefox/33.0 (Super!)
OPERA OPR/26.0.1656.32 (Super!)
Safari Safari/534.57.2 (Super!)
IE Gecko (?)
Chrome Safari/537.36 (?)

Wie Du unschwer erkennen wirst, wird der IE als auch Chrome nicht richtig ausgewiesen oder irre ich da? :confused:

VG
none2
 
Hallo rico,

Die auskommentierten CDATA Blöcke braucht man heutzutage nicht mehr und sollten weggelassen werden.

Magst Du mir bitte - der ein großer Freund von OnPage-Optimierungen ist und zwingend erforderliche JavaScript-Sachen zu gern damit für SuMa'en effektiv maskiert - zeigen, woher diese Information stammt?

Hab Dank!
 
Du, diese Info habe ich irgendwo mal gelesen. Das ist jetzt aber auch schon ein paar Jahre her. Ich glaube da stand damals, dass dieses CDATA für JS noch aus HTML4 Zeiten stammt und die Browser mittlerweile automatisch erkennen können, wann der XML Parser gebraucht wird und wann nicht.

- - - Aktualisiert - - -

@none2: Das kann gut sein, dass Google und Microsoft einen etwas anderen User-Agent zusammen gebastelt haben. Du müsstest dir diesen nun anschauen und eventuell den JS-Code anpassen.
 
DANKE an ALLE!

Habe nun durch 'Zufall' ein JavaScript entdeckt, dass auf all meinen Browser funktioniert:

Code:
<!--start_browser-check-->
<script type="text/javascript">// <![CDATA[
(function(){var p=[],w=window,d=document,e=f=0;p.push('ua='+encodeURIComponent(navigator.userAgent));e|=w.ActiveXObject?1:0;e|=w.opera?2:0;e|=w.chrome?4:0;
			e|='getBoxObjectFor' in d || 'mozInnerScreenX' in w?8:0;e|=('WebKitCSSMatrix' in w||'WebKitPoint' in w||'webkitStorageInfo' in w||'webkitURL' in w)?16:0;
			e|=(e&16&&({}.toString).toString().indexOf("\n")===-1)?32:0;p.push('e='+e);f|='sandbox' in d.createElement('iframe')?1:0;f|='WebSocket' in w?2:0;
			f|=w.Worker?4:0;f|=w.applicationCache?8:0;f|=w.history && history.pushState?16:0;f|=d.documentElement.webkitRequestFullScreen?32:0;f|='FileReader' in w?64:0;
			p.push('f='+f);p.push('r='+Math.random().toString(36).substring(7));p.push('w='+screen.width);p.push('h='+screen.height);var s=d.createElement('script');
			s.src='http://api.whichbrowser.net/dev/detect.js?' + p.join('&');d.getElementsByTagName('head')[0].appendChild(s);})();
// ]]></script>
<div id="container"> </div>
<script type="text/javascript">// <![CDATA[
function waitForWhichBrowser(cb) {
				var callback = cb;
				
				function wait() {
					if (typeof WhichBrowser == 'undefined') 
						window.setTimeout(wait, 100)
					else 
						callback();
				}
				
				wait();
			}


			waitForWhichBrowser(function() {
				var o = document.getElementById('container');
	
				try {
					Browsers = new WhichBrowser({
						useFeatures:		true,
						detectCamouflage:	true
					});
				
					o.innerHTML = 'Browserbezeichnung: ' + Browsers + '<br><small>' + navigator.userAgent + '</small>';
				} catch (e) {
					o.innerHTML = 'Oops, something went wrong:<br> <small>' + e + '</small>';
				}
			});
// ]]></script>
<!--end_browser-check-->

Viele Grüße
none2
 
Eine externe Einbindung sieht man da: http://api.whichbrowser.net/dev/detect.js

Aber immerhin liegt die Domain in den Niederlanden - nicht in Übersee (Stichwort DNS-Lookup, Flaschenhals-Unterseekabel usw.). Zwar empfinde ich die AJAX-Methode eleganter und ich nötige auf diese Weise dem Client kein weiteres langes Script zu (was nur diese eine Sache macht), aber ich empfehle Dir dennoch, dass Du Dir die detect.js auf Deine Domain legst. So hast Du schon einen DNS-Lookup gespart und sollte die Seite mal nicht erreichbar sein, bremst es Dich nicht mit - und wer weiß, was Du noch von extern alles einbindest (jQ edge, Google API, FB Quark etc.). :)

Schön, dass es für Dich geklappt hat.

Grüße
 
Ich frage mich mittlerweile oft, warum ich mir überhaupt die Mühe mache, ein Demo-Fiddle zu erstellen... :p
 
Zuletzt bearbeitet:
Kopf, Herr Moderator ... es führen mehrere Wege nach Rom und der TO entschied sich für das gefundene Script. *hier, nimm einen virtuellen Lebkuchen!*

Herr Nantuu, ^^

Du bindest ein Script von der besagten Seite ein - das zeigt Dein hier eingebundenes Snippet:
Code:
var s=d.createElement('script');
s.src='http://api.whichbrowser.net/dev/detect.js?' + p.join('&');
d.getElementsByTagName('head')[0].appendChild(s);

Der setzt Dir in Dein DOM das besagte Script ein - würdest Du sehen können, wenn Du im Browser Deiner Wahl die Entwickler-Tools öffnest. Kurzum: Er telefoniert nach Holland. :D

Meine Empfehlung war schlicht wie simpel: Schreibe Zeile 2 (s. o.) um, dass die von mir direkt verlinkte detect.js auf Deiner Domain liegt und eben kein Request gen NED laufen muss.

Zum Verständnis: Mach doch einfach mal die Entwicklerkonsole in Deinem Browser (F12?) auf und schaue Dir an, wohin der Browser überall langt, um Deine Seite anzuzeigen! Dann verstehst Du auf Anhieb, wo ich sparen würde (und möglichst immer tue).
 
Hallo SteelWheel,

ja, das ist Euch wirlich gelungen! :icon7:

Vielleicht könnt Ihr das Ganze nocheinmal daugerecht entwirren?

VG
none2
 
Zurück
Oben