MyBB.de Forum

Normale Version: Problem mit Ankern und iframe
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo!
Ich habe das Forum in eine Seite durch einen iframe eingebunden.
Wenn im Forum auf einen Link mit Anker (letzter Beitrag odgl.) geklickt wird, wird dieser Anker angesprungen. Das Problem ist nur das dabei die Hauptseite in der der iframe liegt aus dem Bild geschoben wird.
Der Bildausschnitt beginnt mit dem iframe. Der Teil der Seite der über dem iframe liegt wird abgeschnitten und ist nicht mehr erreichbar.
Was kann ich da tun?
Header verändern? Ich möchte ungern alle Anker aus dem Forum entfernen, werde das aber tun müssen wenn sich keine andere Lösung findet. Sollte es am iframe liegen, könnte das Forum auch anders eingebunden werden wenn das Verhalten entsprechend ist.
Um das Problem live zu sehen: http://www.battle-worlds.de/forum.html
Dort dann zb ein mal auf letzten Beitrag klicken.
Man muss sich erst anmelden damit der Beitrag auf geht.
Bis dahin liegt alles innerhalb des Frames.
voyager8000 schrieb:Man muss sich erst anmelden damit der Beitrag auf geht.
Bis dahin liegt alles innerhalb des Frames.

Ups, hatte ich nicht bedacht ;-)

Ja, das mit der Registrierung ist auch noch so eine Sache. Der Link aus der Mail führt ja auch nicht zur richtigen Stelle innerhalb des iframes.

Aber darum ging es mit nicht. Wenn man angemeldet ist und dann normal die Seite mit iframe lädt und dann im Forum auf einen Link mit Anker (zb letzter Beitrag) klickt, dann wird die parent-Seite in der sich der iframe befindet aus dem viewport geschoben.

Es geht nicht darum das man an einigen Stellen den iframe verlässt. Es geht darum das nach klick auf einen Link mit Anker (alle anderen gehen). Das Logo und die Navigation der Hauptseite aus dem Browserfenster geschoben werden.
Eine Ergänzung:
Ich habe das folgenden header in Verdacht ;-)

header("Location:showthread.php?tid={$tid}&pid={$pid}#pid{$pid}");

Dieser führt dazu das eben die obere Kante des iframes als Oberkante der Seite angenommen wird und an den Anker gesprungen wird. Dabei wird aber wie gesagt alles was oberhalb des iframes liegt abgeschnitten und ist auch nich mehr durch scrollen erreichbar.

Kann mir jemand einen Tip geben was ich ändern muss bzw wo ich Informationen dazu finde?
Ich habe gerade Schwierigkeiten, mir das Problem genau vorzustellen. Hast du vielleicht mal einen Screenshot oder noch besser einen Link?
Mak schrieb:Ich habe gerade Schwierigkeiten, mir das Problem genau vorzustellen. Hast du vielleicht mal einen Screenshot oder noch besser einen Link?

Ja, habe ich.
Das Forum ist schon aktiv, weshalb man sich leider registrieren muss.
Forum unter: http://www.battle-worlds.de/forum.html

Man sieht das Forum in einem iframe in der Seite forum.html.
Wenn man (nach der Registrierung) auf diese Seite geht und einen 'letzten Beitrag' anklickt, dann springt das Forum wie gewünscht an die richtige Stelle. zB http://www.battle-worlds.de/forum/showth...n=lastpost

Dies führt wie gesagt dazu das die Seite forum.html in der der iframe mit dem Forum liegt nach oben aus dem Viewport geschoben wird.
Dies tritt nur bei Links mit anchor auf. Alle 'normalen Links' funktionieren.

Ich habe leider keine Idee woran es liegt und kann daher auch nichts dagegen machen.
Mögliche Gründe:
#anchor und iframe machen das Problem
Das autorezising des iframes macht in diesem Zusammenhang Probleme.
Leg am besten einen Benutzer an und poste hier die Zugangsdaten, dann kann man sich ein Bild davon machen.
Wie hast du denn das "autoresize" des iframes gelöst?
frankrieger schrieb:Leg am besten einen Benutzer an und poste hier die Zugangsdaten, dann kann man sich ein Bild davon machen.
Wie hast du denn das "autoresize" des iframes gelöst?

Zugangsdaten:
user: myBBTest
pass: iframetest

Die Höhenanpassung des iframes mache ich über:
<script type="text/javascript">
function setIframeHeight() {
if(parent.frames.length && document.documentElement && document.documentElement.scrollHeight) {
var iframe = parent.document.getElementsByTagName('iframe')[0];
iframe.style.height = '0';
iframe.style.height = (document.documentElement.scrollHeight + 10) + 'px';
}
}
window.onload = setIframeHeight;
</script>

Das in das header-template eingefügt. Funktioniert auch. (Zumindest bei den normalen Links)
Ich weiß nicht ob es etwas hilft, aber lass folgende Angaben bei dem iframe mal weg:
Code:
scrolling="no" allowtransparency="true"
frankrieger schrieb:Ich weiß nicht ob es etwas hilft, aber lass folgende Angaben bei dem iframe mal weg:
Code:
scrolling="no" allowtransparency="true"

Habe ich rausgenommen. Hat allerdings zu keiner Veränderung geführt.

Kann das Problem denn jetzt nachvollzogen werden? Ich finde das ein seltsammes Verhalten. Zumal es im IE7 und FF gleich ist.

Meine Suche in google hat auch zu keiner Lösung geführt. Dort gab es nur einzelne die ein gleichartiges Problem haben/hatten, aber nicht wirklich Lösungen.
Eingige setzen wohl auf ein js-scrolling das den Anker als Parameter auswertet.

Ich habe ja das header(location: ) in Verdacht. Gegen was könnte/sollte ich das denn austauschen? Es sieht so aus als würde dies dazu führen das die ganze Seite und eben nicht nur der iframe neu gezeichnet wird.
Evtl sollte man den iframe zum Start eine sehr große Größe geben die dann verringert wird und nicht wie jetzt andersherum? (Probiere ich mal)


Edit:
Höhe des iframes erhöht -> keine Änderung.
Um wieviel die parent-Seite nach oben aus dem Schirm geschoben wird scheint von der Höhe des iframes abzuhängen. Je länger der Inhalt des iframes desto weiter wird die Seite hinausgeschoben.
Seiten: 1 2