Hi,
nachdem mir aufgefallen ist dass im Smiliebook die Seite nach oben springt wenn man einen Smilie einfügt habe ich mich im Code umgesehen.
Da alle Links der Smilies mit href="#" ausgestattet sind, ist das Phänomen auch nicht verwunderlich.
SPRINGEN BEI HINZUFÜGEN VON SMILIES VERHINDERN:
Abhilfe schafft folgende Änderung in Zeile 245 in der Datei inlcude/module/smileybook/index.inc.php:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
echo "<td>Smiley:</td>\n";
echo "<td><a href="javascript:void(0);" title=":)" onclick="smily(' :) ','book','text');"><img src="".$settings['page_dir']."/includes/module/smileybook/smiley/smile.png" alt=":)" border="0" /></a></td>\n";
echo "<td><a href="javascript:void(0);" title=";)" onclick="smily(' ;) ','book','text');"><img src="".$settings['page_dir']."/includes/module/smileybook/smiley/zwinker.png" alt=";)" border="0" /></a></td>\n";
echo "<td><a href="javascript:void(0);" title=":D" onclick="smily(' :D ','book','text');"><img src="".$settings['page_dir']."/includes/module/smileybook/smiley/happy.png" alt=":D" border="0" /></a></td>\n";
echo "<td><a href="javascript:void(0);" title=":P" onclick="smily(' :P ','book','text');"><img src="".$settings['page_dir']."/includes/module/smileybook/smiley/zunge.png" alt=":P" border="0" /></a></td>\n";
echo "<td><a href="javascript:void(0);" title="8)" onclick="smily(' 8) ','book','text');"><img src="".$settings['page_dir']."/includes/module/smileybook/smiley/cool.png" alt="8)" border="0" /></a></td>\n";
echo "<td><a href="javascript:void(0);" title=":S" onclick="smily(' :S ','book','text');"><img src="".$settings['page_dir']."/includes/module/smileybook/smiley/verunsichert.png" alt=":S" border="0" /></a></td>\n";
echo "<td><a href="javascript:void(0);" title=":(" onclick="smily(' :( ','book','text');"><img src="".$settings['page_dir']."/includes/module/smileybook/smiley/cry.png" alt=":(" border="0" /></a></td>\n";
echo "<td><a href="javascript:void(0);" title=":rolleyes:" onclick="smily(' :rolleyes: ','book','text');"><img src="".$settings['page_dir']."/includes/module/smileybook/smiley/rolleyes.png" alt=":rolleyes:" border="0" /></a></td>\n";
echo "<td><a href="javascript:void(0);" title="X(" onclick="smily(' X( ','book','text');"><img src="".$settings['page_dir']."/includes/module/smileybook/smiley/boese.png" alt="X(" border="0" /></a></td>\n";
echo "<td><a href="javascript:void(0);" title="=(" onclick="smily(' =( ','book','text');"><img src="".$settings['page_dir']."/includes/module/smileybook/smiley/sauer.png" alt="=(" border="0" /></a></td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</div>\n\n";
|
TEXT FÜR USER OHNE javascript:
Ausserdem habe ich mir gedacht was mit den Leuten passiert die kein JS aktiviert haben.
Die landen nach einem Klick auf den Smilie auf der Startseite.
Also blende ich bei den Usern mit aktiviertem JS die Smileys ein und bei allen anderen ein kleines Hinweisfenster mit der Nachricht dass Smileys bei aktiviertem JS zur Verfügung stehen würden.
Folgende Änderung macht das möglich:
In der Datei includes/modules/smileybook/modul.js in der ersten Zeile folgendes einfügen:
|
Quellcode
|
1
|
window.onload= function() {document.getElementById('smileys').style.visibility='visible';};
|
In der Datei includes/modules/smileybook/index.inc.php die Zeile 241 mit folgendem ersetzen:
|
Quellcode
|
1
2
|
echo "<noscript><div style="text-align:center; color: red;">Bei aktiviertem Javascript würde ihnen hier eine Auswahl an Smilies zur Verfügung stehen.</div></noscript>\n\n";
echo "<div id="smileys" style="visibility: hidden">\n";
|
Alle Änderungen sind CSS-Valid, XHTML-Valid und JS-Valide und funktionieren einwandfrei bei allen Browsern.
Zur Erklärung:
Die Smileybox wird mit der Eigenschaft
|
Quellcode
|
1
|
style="visibility: hidden"
|
unsichtbar für alle gemacht.
Bei jedem Aufruf des Gästebuchs wird die Datei modul.js aufgerufen in der in der ersten Zeile frei übersetzt steht:
"Wenn die Seite geladen wird mache das Element mit der ID "smilys" sichtbar. Da von allen die JS deaktiviert haben, der Javascript-Code ignoriert wird, bleibt das Fenster auch unsichtbar.
Gruß
CoRe