Seite 1 von 1

Schriftgröße per Mausklick ändern

Verfasst: 13.02.2009 16:32
von jensdd
In meinem phpBB 2.0.23 habe ich versuchsweise den Code aus phpBB 3 zur Schriftgrößenänderung eingebaut.

Codeteile in der overall_header.tpl

Code: Alles auswählen

<link href="templates/{T_NAME}/normal.css" rel="stylesheet" type="text/css" title="A" />
<link href="templates/{T_NAME}/normal.css" rel="alternate stylesheet" type="text/css" title="A" />
<link href="templates/{T_NAME}/medium.css" rel="alternate stylesheet" type="text/css" title="A+" />
<link href="templates/{T_NAME}/large.css" rel="alternate stylesheet" type="text/css" title="A++" />

Code: Alles auswählen

<script type="text/javascript">
<!--
var style_cookie = 'phpBBstyle';
var onload_functions = new Array();
var onunload_functions = new Array();

window.onload = function()
{
for (var i = 0; i < onload_functions.length; i++)
{
eval(onload_functions[i]);
}
}

window.onunload = function()
{
for (var i = 0; i < onunload_functions.length; i++)
{
eval(onunload_functions[i]);
}
}

function fontsizeup() {
var active = getActiveStyleSheet();
switch (active)
{
case 'A--':
setActiveStyleSheet('A-');
break;

case 'A-':
setActiveStyleSheet('A');
break;

case 'A':
setActiveStyleSheet('A+');
break;

case 'A+':
setActiveStyleSheet('A++');
break;

case 'A++':
setActiveStyleSheet('A');
break;

default:
setActiveStyleSheet('A');
break;
}
}

function fontsizedown() {
active = getActiveStyleSheet();
switch (active)
{
case 'A++' : 
setActiveStyleSheet('A+');
break;

case 'A+' : 
setActiveStyleSheet('A');
break;

case 'A' : 
setActiveStyleSheet('A-');
break;

case 'A-' : 
setActiveStyleSheet('A--');
break;

case 'A--' : 
break;

default :
setActiveStyleSheet('A--');
break;
}
}

function setActiveStyleSheet(title) {
var i, a, main;
for (i = 0; (a = document.getElementsByTagName('link')[i]); i++)
{
if (a.getAttribute('rel').indexOf('style') != -1 && a.getAttribute('title'))
{
a.disabled = true;
if (a.getAttribute('title') == title)
{
a.disabled = false;
}
}
}
}

function getActiveStyleSheet() {
var i, a;
for (i = 0; (a = document.getElementsByTagName('link')[i]); i++)
{
if (a.getAttribute('rel').indexOf('style') != -1 && a.getAttribute('title') && !a.disabled)
{
return a.getAttribute('title');
}
}
return null;
}

function getPreferredStyleSheet() {
return ('A');
}

function createCookie(name, value, days) {
if (days)
{
var date = new Date();date.setTime(date.getTime() + (days*24*60*60*1000));
var expires = '; expires=' + date.toGMTString();
}
else
{
expires = '';
}
document.cookie = name + '=' + value + expires;
}

function readCookie(name) {
var nameEQ = name + '=';var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++)
{
var c = ca[i];while (c.charAt(0) == ' ')
{
c = c.substring(1, c.length);
}
if (c.indexOf(nameEQ) == 0)
{
return c.substring(nameEQ.length, c.length);
}
}
return null;
}

function load_cookie() {
var cookie = readCookie('style_cookie');
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);
}

function unload_cookie() {
var title = getActiveStyleSheet();createCookie('style_cookie', title, 365);
}

onload_functions.push('load_cookie()');onunload_functions.push('unload_cookie()');
//--></script>
Folgendes Problem tritt im Firefox auf: Wenn ich Formulareingaben über die Suchfunktion abschicke wird die Ergebnisseite zunächst richtig angezeigt und verliert dann sofort ihre CSS-Formatierung. Speichere ich die Ergebnisseite, sind offline alle Dateien vorhanden und die Seite wird richtig angezeigt. Das verwendete Stylesheet ist aber nicht wie üblich im Quelltext zu finden, sondern nur als Link. Eingaben im Postingformular funktionieren.
Wo könnte der Fehler liegen? Im IE und in Opera gibts keine Probleme.

Gruß Jens