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



## simbel (14. Dezember 2003)

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


----------



## Fabian H (14. Dezember 2003)

Das liegt am, mehr oder weniger, schlechten Programmierstil.

Ein PopUp Link don deiner Seite sieht warscheinlich ungefär so aus:

```
<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:

```
<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.


----------



## SilentWarrior (14. Dezember 2003)

Sollte das nicht in die Webmaster-FAQ aufgenommen werden? Mir scheint, die Frage taucht immer wieder auf, und jedesmal die gleiche Antwort.


----------



## Neurodeamon (14. Dezember 2003)

Eine weitere Möglichkeit wäre der command "javascript:;" statt der Raute oder eine leere Javascriptfunktion (was den gleichen Effekt hat).


----------



## Fabian H (14. Dezember 2003)

Schon, aber da hat man wieder das problem, dass man den Link nicht im neuen Fenster oder tab öffenen kann.


----------



## simbel (14. Dezember 2003)

@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   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?


```
<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!


----------



## SilentWarrior (14. Dezember 2003)

Darf ich noch kurz was anmerken?

HUGNAAARRRR   (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:
	
	
	



```
<a href='seite.htm'
onClick="window.open('seite.htm','Titel nicht vergessen!','width=200,height=200');
return false;">Klick</a>
```


----------



## Fabian H (15. Dezember 2003)

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.


----------



## SilentWarrior (15. Dezember 2003)

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*


----------



## simbel (15. Dezember 2003)

@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*


----------



## simbel (4. Januar 2004)

Ich bins nochmal   irgendwie hab ich Probleme mit diesen doofen Links *hehe*
Weiß aber nich woran es liegt, vielleicht kann mir jemand von Euch helfen?

Ich hab die Seite online... aber der sagt mir da jetzt immer Fehler auf der Seite
wenn ich nen Link anklicke..... 
Kann das mit der Verlinkung zu tun haben? Denn offline bei Dreamweaver klappts gut! 

Die Links sehen da so aus

```
<a href='file:///D|/Lyrinth/04/breath.htm' onClick="MM_openBrWindow
('file:///D|/Lyrinth/04/breath.htm','','width=400,height=515');return false">
<font color="#030303"><i>Link</i></font></a>
```

Oder auf meiner Page einfach mal im Menu "Lyrics" anklicken und einen der Links rechts 
im Text ausprobieren. Ich hoffe das genügt um mir zu helfen?

Danke schonmal!


----------



## SilentWarrior (4. Januar 2004)

Natürlich funktioniert das nicht, du hast ja absolute Pfadangaben verwendet. Arbeite stattdessen mit relativen Pfadangaben, und schon klappt alles wunderbar:
	
	
	



```
<a href='breath.htm' onClick="open.window('breath.htm','','width=400,height=515');return false">
<font color="#030303"><i>Link</i></font></a>
```
Und halt ggf. noch den entsprechenden Pfad vorne an breath.htm ranhängen.


----------



## simbel (4. Januar 2004)

Habs schon selbst hinbekommen.... aber ich dank dir trotzdem


----------

