Initiative “pro Firefox”

Hallo Firefox-Interessierter (hoffen wir zumindest).

Wir haben ein kleines JavaScript erstellt, welches AnwenderInnen beim Einsatz veralteter und unsicherer Browserversionen warnen und (optional) die Verbreitung von Firefox erhöhen soll. An dieser Stelle findest du alle notwendigen Informationen um das Skript auf deiner Seite einzubinden. Wenn du Näheres zu den Hintergründen wissen möchtest, dann lies bitte den Newsartikel zu diesem Thema.
Eine Liste von ausgewählten teilnehmenden Seiten findest du hier.

Einbinden des Skripts

Das JavaScript Snippet sollte direkt vor dem schließenden Body Tag (</body>) eingefügt werden:

<script type="text/javascript">
(function()
  {
    var fxjs = document.createElement('script');
    fxjs.src = (('https:' == document.location.protocol) ? 'https' : 'http') + '://www.soeren-hentzschel.at/profirefox/profirefox-min.js';
    fxjs.setAttribute('type', 'text/javascript');
    fxjs.setAttribute('async', 'true');
    document.getElementsByTagName('head')[0].appendChild(fxjs);
  })();
</script>

Die Leiste kann mit ein paar Optionen auch als reine Benachrichtigung für veraltete Browserversionen genutzt werden, ohne bei Nutzung des Internet Explorer auf Firefox hinzuweisen. Näheres hierzu steht in den Erweiterten Optionen oder im Beispiel.

Das JavaScript wird erst nach dem Laden der Seite eingefügt, so dass beim Seitenaufbau keine Verzögerung zu erwarten ist. Das Skript wird gzip komprimiert ausgeliefert, sofern der Browser dies unterstützt und hat eine Größe von etwa 43kb.

Wird auf der Seite, in die das Skript eingebunden wird, bereits jQuery verwendet, so kann statt

    fxjs.src = (('https:' == document.location.protocol) ? 'https' : 'http') + '://www.soeren-hentzschel.at/profirefox/profirefox-min.js';
    fxjs.src = (('https:' == document.location.protocol) ? 'https' : 'http') + '://www.soeren-hentzschel.at/profirefox/profirefox_nojq-min.js';

verwendet werden. In dieser Version hat das Skript eine gzip-komprimierte Größe von etwa 9kb.
Auch für Nutzer von prototype.js haben wir eine Version. Hierfür gibt es folgenden Code:

    fxjs.src = (('https:' == document.location.protocol) ? 'https' : 'http') + '://www.soeren-hentzschel.at/profirefox/profirefox_prototype-min.js';

Userempfinden / Datenschutz

Das Skript ist reines JavaScript und keine versteckte PHP Datei oder sonstige dynamische Datei. Es werden keine Daten in einer Datenbank o.ä. gespeichert, es erfolgt lediglich die normale Protokollierung des Dateiaufrufs im Webserver-Log. Diese Daten werden – wenn überhaupt – lediglich auf die anonymisierte Nutzungsstatistik des Skripts hin analysiert und nicht mit anderen Nutzerdaten aggregiert.
Wird die Leiste über den schließen Button am rechten Rand geschlossen, so wird ein Cookie gesetzt, der Verhindert, dass die Leiste bei den nächsten Seitenaufrufen erneut erscheint. Wie lange dieser Cookie gültig ist, kann vom Seitenbetreiber in den Optionen selbst eingestellt werden.

Optik

Beispiel für eine Hinweisleiste (Kennung "notice")Beispiel für eine Hinweisleiste (Kennung "notice")
Beispiel für eine Infoleiste (Kennung "info")Beispiel für eine Infoleiste (Kennung "info")
Beispiel für eine Warnungsleiste (Kennung "warn")Beispiel für eine Warnungsleiste (Kennung "warn")

Kompatibilität

Das Skript wurde bislang auf folgenden Browsern getestet:
Firefox 3.x, 7.0 – 26.0
Internet Explorer 6**, 7, 8, 9, 10, 11
Opera 10.0 – 12.0
Opera Next
Chrome 18.0 – 31.0
Safari 5.x

** Im Internet Explorer 6 wird die Leiste ohne farbliche Markierung angezeigt, die sonstige Funktionalität ist nicht beeinträchtigt.

Erweiterte Optionen

Das Standardverhalten des Skripts kann durch verschiedene Optionen angepasst werden. Die Optionen werden im Skript-Snippet direkt zu Beginn eingefügt:

<script type="text/javascript">
var proFirefoxOptions = { 'opera_cur_version': false,
                          'other': false,
                          'close_title': 'Close' };
(function()
  {
    var fxjs = document.createElement('script');
    fxjs.src = (('https:' == document.location.protocol) ? 'https' : 'http') + '://www.soeren-hentzschel.at/profirefox/profirefox-min.js';
    fxjs.setAttribute('type', 'text/javascript');
    fxjs.setAttribute('async', 'true');
    document.getElementsByTagName('head')[0].appendChild(fxjs);
  })();
</script>

Folgende Optionen können verwendet werden:

firefox_cur_version
Mögliche Werte: ‘warn’, ‘info’, ‘notice’, false
Standardwert: false
Diese Option bestimmt, welche Leiste angezeigt wird, wenn der User eine aktuelle Firefox Version nutzt. False schaltet die Leiste aus.

firefox_low_version
Mögliche Werte: ‘warn’, ‘info’, ‘notice’, false
Standardwert: info
Diese Option bestimmt, welche Leiste angezeigt wird, wenn der User eine nicht ganz aktuelle Firefox Version nutzt. False schaltet die Leiste aus.

firefox_lower_version
Mögliche Werte: ‘warn’, ‘info’, ‘notice’, false
Standardwert: warn
Diese Option bestimmt, welche Leiste angezeigt wird, wenn der User eine veraltete Firefox Version nutzt. False schaltet die Leiste aus.

msie_cur_version
Mögliche Werte: ‘warn’, ‘info’, ‘notice’, false
Standardwert: notice
Diese Option bestimmt, welche Leiste angezeigt wird, wenn der User eine aktuelle Internet Explorer Version nutzt. False schaltet die Leiste aus.

msie_low_version
Mögliche Werte: ‘warn’, ‘info’, ‘notice’, false
Standardwert: info
Diese Option bestimmt, welche Leiste angezeigt wird, wenn der User eine nicht ganz aktuelle Internet Explorer Version nutzt. False schaltet die Leiste aus.

msie_lower_version
Mögliche Werte: ‘warn’, ‘info’, ‘notice’, false
Standardwert: warn
Diese Option bestimmt, welche Leiste angezeigt wird, wenn der User eine veraltete Internet Explorer Version nutzt. False schaltet die Leiste aus.

chrome_cur_version
Mögliche Werte: ‘warn’, ‘info’, ‘notice’, false
Standardwert: false
Diese Option bestimmt, welche Leiste angezeigt wird, wenn der User eine aktuelle Chrome Version nutzt. False schaltet die Leiste aus.

chrome_low_version
Mögliche Werte: ‘warn’, ‘info’, ‘notice’, false
Standardwert: info
Diese Option bestimmt, welche Leiste angezeigt wird, wenn der User eine nicht ganz aktuelle Chrome Version nutzt. False schaltet die Leiste aus.

chrome_lower_version
Mögliche Werte: ‘warn’, ‘info’, ‘notice’, false
Standardwert: warn
Diese Option bestimmt, welche Leiste angezeigt wird, wenn der User eine veraltete Chrome Version nutzt. False schaltet die Leiste aus.

opera_cur_version
Mögliche Werte: ‘warn’, ‘info’, ‘notice’, false
Standardwert: false
Diese Option bestimmt, welche Leiste angezeigt wird, wenn der User eine aktuelle Opera Version nutzt. False schaltet die Leiste aus.

opera_low_version
Mögliche Werte: ‘warn’, ‘info’, ‘notice’, false
Standardwert: info
Diese Option bestimmt, welche Leiste angezeigt wird, wenn der User eine nicht ganz aktuelle Opera Version nutzt. False schaltet die Leiste aus.

opera_lower_version
Mögliche Werte: ‘warn’, ‘info’, ‘notice’, false
Standardwert: warn
Diese Option bestimmt, welche Leiste angezeigt wird, wenn der User eine veraltete Opera Version nutzt. False schaltet die Leiste aus.

safari_cur_version
Mögliche Werte: ‘warn’, ‘info’, ‘notice’, false
Standardwert: false
Diese Option bestimmt, welche Leiste angezeigt wird, wenn der User eine aktuelle Safari Version nutzt. False schaltet die Leiste aus.

safari_low_version
Mögliche Werte: ‘warn’, ‘info’, ‘notice’, false
Standardwert: info
Diese Option bestimmt, welche Leiste angezeigt wird, wenn der User eine nicht ganz aktuelle Safari Version nutzt. False schaltet die Leiste aus.

safari_lower_version
Mögliche Werte: ‘warn’, ‘info’, ‘notice’, false
Standardwert: warn
Diese Option bestimmt, welche Leiste angezeigt wird, wenn der User eine veraltete Safari Version nutzt. False schaltet die Leiste aus.

other
Mögliche Werte: ‘warn’, ‘info’, ‘notice’, false
Standardwert: notice
Diese Option bestimmt, welche Leiste angezeigt wird, wenn der User einen sonstigen Browser nutzt. False schaltet die Leiste aus.

Bei den folgenden Texten gibt es verschiedene Ersetzungsplatzhalter.
{BROWSER} zeigt den Namen des aktuellen Browsers an
{VERSION} zeigt die Version des aktuellen Browsers an
{FFLINK} zeigt den Link zu Mozilla Firefox an
{UPDATELINK} zeigt den Link zur Update-Seite des aktuellen Browsers an
{FFHINT} zeigt den Hinweis an, dass Firefox zur Nutzung empfohlen wird
{FFVERSION} zeigt die aktuelle Firefox Version an

notice_text
Mögliche Werte: Text
Standardwert:
Du benutzt den Browser <strong>{BROWSER}</strong> in der Version <strong>{VERSION}</strong>. Wir empfehlen die Nutzung von {FFLINK} {FFVERSION}.

info_text
Mögliche Werte: Text
Standardwert:
Du benutzt eine nicht ganz aktuelle Version ({VERSION}) des Browsers <strong>{BROWSER}</strong>, wir empfehlen ein Update auf {UPDATELINK}{FFHINT}.

warn_text
Mögliche Werte: Text
Standardwert:
Du benutzt eine veraltete Version ({VERSION}) des Browsers <strong>{BROWSER}</strong>, wir empfehlen dringend ein Update auf {UPDATELINK}{FFHINT}.

ff_hint_text
Mögliche Werte: Text
Standardwert:
, oder noch besser die Nutzung von {FFLINK}

version_link
Mögliche Werte: Text
Standardwert:
Version {CURVERSION}

close_cookie_time
Mögliche Werte: Sekunden oder Text
Standardwert: 14d (14 Tage)
Diese Option gibt an, wie lange der Cookie gültig ist, der beim Schließen der Leiste gesetzt wird und verhindert, dass die Leiste bei weiteren Besuchen des Users angezeigt wird. Hier sind entweder Sekundenangaben möglich oder Zeitangaben im format 23X, wobei das X entweder w (Wochen), d (Tage), h (Stunden), m (Minuten) sein kann.

info_url
Mögliche Werte: Text
Standardwert: https://www.soeren-hentzschel.at/initiative-pro-firefox/
Dies ist die URL, die bei einem Klick auf den Info Button aufgerufen wird.

info_title
Mögliche Werte: Text
Standardwert: Über Initiative “pro Firefox”
Dies ist der Text für den Title Tag des Info Buttons.

close_title
Mögliche Werte: Text
Standardwert: Schließen’
Dies ist der Text für den Title Tag des Schließen Buttons.

Beispiel zur Nutzung ohne Firefox Hinweis

Auch wenn wir uns natürlich freuen würden, wenn mit diesem Skript der Firefox unterstützt würde, gibt es auch die Möglichkeit die Firefox Hinweise abzuschalten.

<script type="text/javascript">
var proFirefoxOptions = { 'msie_cur_version': false,
                 'info_text': 'Du benutzt eine nicht ganz aktuelle Version ({VERSION}) des Browsers {BROWSER}, wir empfehlen ein Update auf {UPDATELINK}.',
                 'warn_text': 'Du benutzt eine veraltete Version ({VERSION}) des Browsers {BROWSER}, wir empfehlen dringend ein Update auf {UPDATELINK}.' };
(function()
  {
    var fxjs = document.createElement('script');
    fxjs.src = (('https:' == document.location.protocol) ? 'https' : 'http') + '://www.soeren-hentzschel.at/profirefox/profirefox-min.js';
    fxjs.setAttribute('type', 'text/javascript');
    fxjs.setAttribute('async', 'true');
    document.getElementsByTagName('head')[0].appendChild(fxjs);
  })();
</script>

Alternativ können die Hinweise grundsätzlich angezeigt werden, allerdings nur, wenn der User einen veralteten Browser nutzt und nicht generell bei allen Browsern außer Firefox.

<script type="text/javascript">
var proFirefoxOptions = { 'msie_cur_version': false };
(function()
  {
    var fxjs = document.createElement('script');
    fxjs.src = (('https:' == document.location.protocol) ? 'https' : 'http') + '://www.soeren-hentzschel.at/profirefox/profirefox-min.js';
    fxjs.setAttribute('type', 'text/javascript');
    fxjs.setAttribute('async', 'true');
    document.getElementsByTagName('head')[0].appendChild(fxjs);
  })();
</script>

Es können auch bei allen Browsern außer Firefox – auch in aktuellen Versionen – die Hinweise auf Firefox angezeigt werden:

<script type="text/javascript">
var proFirefoxOptions = { 'msie_cur_version': 'notice',
                          'chrome_cur_version': 'notice',
                          'opera_cur_version': 'notice',
                          'safari_cur_version': 'notice' };
(function()
  {
    var fxjs = document.createElement('script');
    fxjs.src = (('https:' == document.location.protocol) ? 'https' : 'http') + '://www.soeren-hentzschel.at/profirefox/profirefox-min.js';
    fxjs.setAttribute('type', 'text/javascript');
    fxjs.setAttribute('async', 'true');
    document.getElementsByTagName('head')[0].appendChild(fxjs);
  })();
</script>

Über Anregungen und Hinweise freuen wir uns natürlich.


Versionsgeschichte

Version 1.0.1 (07.07.2012)
erste Veröffentlichung

Version 1.0.2 (07.07.2012)
Ausschluss mobiler Browser

Version 1.0.3 (07.07.2012)
Erhöhung des Defaultwertes für die Cookie Lebensdauer auf 14 Tage

Version 1.0.4 (08.07.2012)
Aufnahme von Firefox ESR

Version 1.0.5 (09.07.2012)
Änderung der Standardeinstellungen (bei aktuellen Versionen von Chrome, Safari und Opera wird per default kein Hinweis mehr gezeigt)

Version 1.0.5a (18.07.2012)
Es wird nun auch die Verbindung über https unterstützt. Hierzu muss der Javascript Code beim Einbau in die Seite geändert werden, der neue Code ist hier in den Anleitungen aktualisiert worden.

Version 1.0.5b (26.07.2012)
Es gibt nun auch eine Version für prototype.js

Version 1.0.6 (12.10.2012)
SeaMonkey wird nun korrekt erkannt.
Die gekürzte Versionsangabe von Firefox ab Version 16.0 wird berücksichtigt.

Version 1.0.7 (12.10.2012)
Thunderbird wird nun korrekt erkannt.

Version 1.0.8 (14.07.2013)
Unterstützung von Opera Next
Kleinere Bugfixes.

Version 1.0.9 (08.01.2014)
Unterstützung von Internet Explorer 11
Kleinere Bugfixes.