Hallo zusammen,
ich bin mit dem Latein am Ende..
Der folgende Script funktioniert nur wenn ich vorher ein alert() erzeuge und dann auch nicht immer. Ich vermute das Problem hängt damit zusammen wann, wo und wie ich den Script lade, aber trotzdem finde ich keine Lösung.
Hier das Vorhaben:
User mit veralteten Browser sollen eine Nachricht bekomme, dass ihr Browser veraltet ist und ggf. Probleme entstehen.
Dazu habe ich ein Package names "WhichBrowser" via Composer installiert, welches Browser+Version vom User ziemlich zuverlässig erkennt und beides auslesen kann.
Um das Package zu integrieren, habe ich eine .js Datei erstellt, die ich im Head meiner Page lade (siehe nächste Code-Box). Der ertse Teil ist der Code, welcher das Package aktiviert, der zweite Abschnitt ist eine von mir erstellte "Weiche" welche die Browser Versionen in "alt" oder "neu" einstuft. Wenn ein Browser als "alt" identifiziert wurde, wird eine Nachricht erzeugt, welche dann im <body> ausgelesen werden soll.
Script File (whichbrowser_includes.js):
Und hier die der Quelltext der Page:
Quelltext der Page:
Wenn das "alert('start');" im Code erscheint, funktioniert der Script manchmal und macht auch alles richtig, aber leider nicht immer. Wenn ich das Alert rausnehme, funktioniert der Script gar nicht, die Variable old_b_message erzeugt ein "undefined".
Hat jemand eine Idee?
ich bin mit dem Latein am Ende..
Der folgende Script funktioniert nur wenn ich vorher ein alert() erzeuge und dann auch nicht immer. Ich vermute das Problem hängt damit zusammen wann, wo und wie ich den Script lade, aber trotzdem finde ich keine Lösung.
Hier das Vorhaben:
User mit veralteten Browser sollen eine Nachricht bekomme, dass ihr Browser veraltet ist und ggf. Probleme entstehen.
Dazu habe ich ein Package names "WhichBrowser" via Composer installiert, welches Browser+Version vom User ziemlich zuverlässig erkennt und beides auslesen kann.
Um das Package zu integrieren, habe ich eine .js Datei erstellt, die ich im Head meiner Page lade (siehe nächste Code-Box). Der ertse Teil ist der Code, welcher das Package aktiviert, der zweite Abschnitt ist eine von mir erstellte "Weiche" welche die Browser Versionen in "alt" oder "neu" einstuft. Wenn ein Browser als "alt" identifiziert wurde, wird eine Nachricht erzeugt, welche dann im <body> ausgelesen werden soll.
Script File (whichbrowser_includes.js):
PHP-Code:
/* Whichbrowser Include. Wird benötigt, um WhichBrowser Package zu aktiveren */
(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='vendor/whichbrowser/whichbrowser/detect.php?' + p.join('&');d.getElementsByTagName('head')[0].appendChild(s);})();
/* Browserweiche für "Old Browser" Message. */
alert('start'); /* Ohne dieses Alert funktioniert der Script nicht */
Browsers = new WhichBrowser();
if (
(Browsers.isBrowser('Firefox', '<', '10'))
|| (Browsers.isBrowser('Chrome', '<', '9'))
|| (Browsers.isBrowser('Internet Explorer', '<', '8'))
|| (Browsers.isBrowser('Opera', '<', '11'))
|| (Browsers.isBrowser('Safari', '<', '5'))
|| (Browsers.isBrowser('Trident', '<', '4'))
)
{
var old_b_message = 'Browser veraltet';
} else {
var old_b_message = '';
}
Quelltext der Page:
PHP-Code:
<head>
...
<!-- WhichBrowser -->
<script type="text/javascript" src="vendor/whichbrowser_includes.js"></script>
...
</head>
<body>
...
<!-- User Notifications -->
<script type="text/javascript">
document.write(old_b_message);
</script>
...
</body>
Hat jemand eine Idee?
Kommentar