Text im IFrame soll nicht wieder an den Anfang gehen sondern stehenbleiben!

Status
Nicht offen für weitere Antworten.

simbel

Mitglied
Hi Leute,

wieder mal hoffe ich, dass das Thema noch nicht da war..... hab auch gesucht *versprochen* Bin für Links dankbar! Der Titel klingt wohl auch etwas seltsam, aber wusste keine bessere Formulierung *schäm*

Also, ich habe eine Text.html, die in einem IFrame angezeigt wird. Der Text ist etwas länger und man muss demzufolge nach unten scrollen wenn man alles lesen will. In diesem Text sind viele Links und beim Anklicken öffnen sich jeweils Popups.

Das Problem ist nun, dass wenn ich einen Link anklicke und das Popup geöffnet ist.... der Text im IFrame wieder ganz nach oben an den Anfang geht.

Wenn man also den unteren Teil von Text liest und die jeweiligen Popups anschaut, ist es ganz schon anstrengend wenn der Text im IFrame immer wieder auf Anfang zurückgeht und nicht einfach an der Stelle stehenbleibt.

Ich möchte, dass der Text im IFrame an der Stelle stehen bleibt an der man zuletzt gelesen hat.... bevor man einen Link angeklickt hat

Ist das einigermassen verständlich ausgedrückt? *überleg* ;)

Ich hoffe es gibt da eine einfache Lösung? Danke schonmal :)
 
Das liegt am, mehr oder weniger, schlechten Programmierstil.

Ein PopUp Link don deiner Seite sieht warscheinlich ungefär so aus:
PHP:
<a href="#" onClick="makePopUp('ziel.html');">Klick</a>
Das hat zwei gewaltige Nachteile:
  • Einmal das von dir angesprochene Problem, dass immer nach Oben
    gescrollt wird, wenn man auf den Link klickt. Die Erklärung ist einfach: Der
    Browser soll einen namenlosen Anker anspringen, welchen es aber nicht gibt
    (oder so ähnlich). Die Folge ist, dass an den Anfang des Dokumentes
    gescrollt wird.
  • Will der Besucher die Seite nicht in einem PopUp, sondern in einem neuen
    Fenster oder einem neuen Tab öffnen, so muss er Umstände aufbringen, die
    das Surfen unnötig aufwändig machen und eigentlich nicht Sinn einer
    Homepage sein dürfen.

Der "richtige" Link würde so aussehen:
PHP:
<a href="seite.html"
   onClick="makePopUp('seite.html'); return false;">Klick</a>
Q: Was ist hier nun anders oder besser?
A: Im href-Attribut des Linkes steht die Seite, die im PopUp geöffnet wird
und keine Raute mehr. Man kann nun den Link problemlos in einem neuen
Fenster oder Tab öffnen.

Q: Nun wird aber doch das PopUp geöffnet und zur Seite navigiert?
A: Nein, die return false-Anweisung im onClick-Handler sorgt dafür,
dass das PopUp geöffnet wird, aber gleichzeitig die eigentliche Aktien des
Linkes abgebrochen wird.
Da, wenn man die Seite in einem neuem Fenster oder Tab öffnet, aber nur
das href-Attribut ausgewertet wird, hat das return false; darauf keinen
Einfluss.

Ich hoffe, es einigermaßen deutlich gemacht zu haben, warum man # im
href-Attribut eines Linkes vermeiden sollte.
 
Zuletzt bearbeitet von einem Moderator:
Sollte das nicht in die Webmaster-FAQ aufgenommen werden? Mir scheint, die Frage taucht immer wieder auf, und jedesmal die gleiche Antwort.
 
Eine weitere Möglichkeit wäre der command "javascript:;" statt der Raute oder eine leere Javascriptfunktion (was den gleichen Effekt hat).
 
Schon, aber da hat man wieder das problem, dass man den Link nicht im neuen Fenster oder tab öffenen kann.
 
@Fabian... also ich hab das jetzt mal ausprobiert, aber habs irgendwie nich hinbekommen :( Jetzt frag mich aber nich was ich falsch mache *heul* Bin noch blutiger Anfänger....

Wenn ich den Link nu so setze wie beschrieben, dann wird das neue Fenster nicht als Popup, sondern im IFrame selbst angezeigt.... *verzweifel*

Die Erklärung dazu ist übrigens sehr nett und ich denke ich habs einigermassen begriffen.... zumindest warum es so besser ist als mit Raute! :)

@Neuro.... so viel Fachchinesisch :rolleyes: Du weißt doch wie es mit meinen Fähigkeiten in diesem Bereich aussieht! :-) *anstubs*

EDIT:

Also ich hab rumgebastelt und das is rausgekommen und scheint auch zu funktionieren. Ist das annehmbar?

Code:
<a href='seite.htm' onClick= "MM_openBrWindow('seite.htm','','width=200,height=200');return false">Klick</a>

Ich habs auch probiert mit: onClick="makePopup.... - aber dann öffnet sich das neue fenster wie gesagt im IFrame und nich wirklich als Popup!:(
 
Zuletzt bearbeitet:
Darf ich noch kurz was anmerken?

HUGNAAARRRR :mad: :mad: (sorry, das musste jetzt sein :-))

Warum definiert immer die ganze Welt diesen ver*****ten window.open-Befehl neu? Insbesondere mit diesem MM vorne dran merkt man ja sofort, was für einen beschränkten Editor Macromedia da zusammengebastelt hat. Das geht SO, und nicht anders:
Code:
<a href='seite.htm'
onClick="window.open('seite.htm','Titel nicht vergessen!','width=200,height=200');
return false;">Klick</a>
 
Nein SilentWarrior, so geht es auch nicht :)

Im zweiten Parameter wird der Name des Fensters definiert, nicht der Titel.
Der Name darf ausserdem keine Sonder- und Leerzeichen enthalten.

Hier hat man nu zwei Möglichkeiten:
1: Man definiert _blank als Name, dann wird jedes mal, wenn man auf den
Link klickt ein neues Fenster geöffnet,
oder 2: Man definiert einen bestimmten Namen, beispielsweise win_a.
Nun wird beim ersten window.open-Aufruf, bei dem dieser Namen angegben
wurde ein neues Fenster geöffnet. Aber: So lange dieses Fenster nicht
geschlossen wird, zielen alle window.open-Aufrufe, die diesen Namen definiert
haben, auf dieses Fenster, was bedeuted, dass kein neues mehr geöffnet wird,
sondern die gewünschte Seite in dieses Fenster geladen wird.

Edit: @simbel:
Bitte tue dir und den Anderen den Gefallen, und brin in deine Code
Zeilenumbrüche ein, damit keine vertikalen Scrollbalken angezeigt werden.
Ausserdem ist es dann besserer Stil.
 
Zuletzt bearbeitet von einem Moderator:
Wie meinst du das, es geht nicht? Nur wegen dem Titel? Ich weiss schon, dass da keine Leerzeichen reinkommen. Hab gedacht, SELFHTML lesen kann sicher nicht schaden. ;) Dass das allerdings das gleiche ist wie das target-Attribut in HTML - das war mir neu. Aber man lernt ja immer mal wieder dazu.

Achja: Das mit dem Quellcode solltest du mal allen sagen, die das Forum hier regelmässig verunstalten. Oder ihr baut ein Script ein, welches genau das verhindern soll. *Wink mit dem Zaunpfahl* :-)
 
@Fabian.... och, ich dachte die Länge is noch OK? :( Na dann tu ich demnächst uns allen den Gefallen ;)

Ich danke Euch für die Tipps.... nu klappt das auch mit dem Verlinken.

@SilentWarrior.... naja, aber für Laien wie mich isses halt einfacher im Dreamweaver was zu klicken und nicht alles selbst zu schreiben ;) Mir is auch am Wichtigsten, dass das Resultat stimmt... wie der Code aussieht is mir wurscht :-) Oder hat das was Du da gepostet hast Vorteile gegenüber meiner Version? *unwissend bin*
 
Status
Nicht offen für weitere Antworten.
Zurück