| View previous topic :: View next topic |
| Author |
Message |
lehmi
Joined: 05 Jun 2010 Posts: 1
|
Posted: Sat 05 Jun, 2010 09:10 Post subject: Formatierungsfragen Gästebuch |
|
|
Hallo
Ich habe zwei Fragen zur Formatierung des Gästebuches:
1. Wenn man im Gästebuch auf zurückliegende Seiten blättert, öffnet sich dort automatisch das Feld "Neuer Eintrag". Kann man dieses Öffnen abschalten?
2. Datum/Uhrzeit eines Gästebucheintrages werden nur auf der ersten Seite angezeigt. Kann man dies für Alle einschalten?
Danke. |
|
| Back to top |
|
 |
admin Administrator
Joined: 16 Jan 2007 Posts: 87
|
Posted: Wed 09 Jun, 2010 06:46 Post subject: |
|
|
Das ist ein Bug.
Ich habe das Problem behoben. Die korrigierte Version steht bereits zum Download bereit. Einfach noch mal downloaden, dann geht's. |
|
| Back to top |
|
 |
admin Administrator
Joined: 16 Jan 2007 Posts: 87
|
Posted: Sun 18 Jul, 2010 15:04 Post subject: |
|
|
FYI: die JQuery-Core Komponente, welche Ajax-Requests behandelt, hat den gleichen Bug.
Wer das beheben muss/möchte, der muss vor Absenden eines AJAX-Requests die Funktion document.write durch eine eigene überschreiben.
Diese Funktion sollte den Rückgabewert in eine temporäre Variable schreiben. Anschließend ersetzt man die Java-Script Tags in der Serverantwort durch den Rückgabewert der Funktion document.write.
In Yana habe ich das bereits erledigt.
JQuery hingegen führt zwar das JavaScript aus, lässt document.write aber unangetastet und zerstört dabei eventuell das gesamte Seitenlayout. Also: Vorsicht mit document.write() falls ihr die aktuelle Version von JQuery ohne Yana verwendet. |
|
| Back to top |
|
 |
admin Administrator
Joined: 16 Jan 2007 Posts: 87
|
Posted: Mon 19 Jul, 2010 00:06 Post subject: |
|
|
Für diejenigen, welche ihre Programme selbst patchen wollen/müssen, so haben wir das Problem gelöst:
function loadHTML($node, $html) {
$node.innerHTML = $html;
if ($html.match(/<script[^>]*?>/)) { // handle javascript
var documentText = "";
document.write = function(text) {
documentText += text;
}
var matches = false;
do {
if (matches) {
func = new Function(matches[3]);
func.call();
$node.innerHTML = matches[1] + documentText + matches[4];
documentText = "";
} // end if
matches = $node.innerHTML.match(/^([\s\S]*?)<script( [^>]*)?>(.*)<\/script>([\s\S]*)/i);
} while (matches)
} // end if
} |
|
| Back to top |
|
 |
|