[GastForen Programmierung/Entwicklung JavaScript Seiteninhalt mit Onload beobachten und bei reload nach oben Scrollen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Seiteninhalt mit Onload beobachten und bei reload nach oben Scrollen

Wulf
Beiträge gesamt: 80

28. Apr 2006, 08:54
Beitrag # 1 von 10
Bewertung:
(8424 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

folgendes Problem:

Auf meiner Seite muss ich mit IFrame Inhalte einer anderen Seite einbinden. (Ich weiß, Frames und IFrames sind keine gute Lösung, nur leider komme ich hier nicht daran vorbei.)

Nun möchte ich, dass jedesmal wenn die Seite im IFrame neu geladen wird (also innerhalb des IFrames nach dem Anklicken eines Links dort eine neue Seite aufgerufen wird) meine Seite (also die gesamte Seite) nach oben scrollt.

Bisher löse ich das per JS mit "onload":

Code
<iframe onload="scrollTo(0,0)" name="datas" 
src="...url..." ...>


Das klappt auch wunderbar, solange es sich bei der geladenen Seite um eine HTML-Seite handelt und nicht um ein Frameset. Nun muss ich allerdings eine Seite im IFrame laden, die selbst als Frameset aufgebaut ist:


Code
<frameset rows="*,1" framespacing="0" border="0" frameborder="0"> 
<frame name="Hauptframe" src="... url ...">
<frame name="Navigation" scrolling="no">
</frameset>


Wird nun auf der Seite im IFrame navigiert funktioniert der obige Code natürlich nicht mehr. Er betrachtet ja den unmittelbaren Inhalt des IFrames, also das Frameset selbst. Die Änderungen spielen sich aber innerhalb des Framesets im Frame "Navigation" ab.

Hoffe, ich konnte das einigermaßen verständlich beschreiben.

Nun meine Frage:

Wie kann ich mit Javascript erreichen, dass meine Seite nach oben scrollt, wenn sich innerhalb des IFrames in dem dortigen Frame "Hauptframe" der Inhalt ändert?

Reicht es evtl. aus, eine Objektbezeichnung für den Frame zu onload hinzuzufügen? Wie müsste diese Objektbezeichnung aussehen?

Ich selbst habe leider nicht viel Erfahrung in Javascript und hoffe, Ihr könnt mir helfen.

Hinweis: Auf den Aufbau der im Iframe geladenen Seiten habe ich leider keinen Einfluss und muss nehmen, was da kommt.

Für jeden Hinweis schon mal jetzt ein ganz dickes Dankeschön.

Viele Grüße
Wulf
X

Seiteninhalt mit Onload beobachten und bei reload nach oben Scrollen

oesi50
  
Beiträge gesamt: 2315

28. Apr 2006, 17:27
Beitrag # 2 von 10
Beitrag ID: #226205
Bewertung:
(8408 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
die Sicherheitseinstellungen moderner Browser verhindern, daß man auf "fremde" Frames zugreifen kann. Wenn du selbst der Ersteller der "fremd" geladenen Seiten bist, kannst du dort entsprechende Anker verwenden, die dann direkt angesprungen werden können.


das sieht dann so aus

Code
<frame src="neue_seite.html#sprungziel"> 



als Antwort auf: [#226041]

Seiteninhalt mit Onload beobachten und bei reload nach oben Scrollen

Wulf
Beiträge gesamt: 80

28. Apr 2006, 17:58
Beitrag # 3 von 10
Beitrag ID: #226221
Bewertung:
(8403 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Oesi,

danke für die Antwort.

Leider bin ich nicht der Ersteller der fremd-geladenen Seiten und habe auf die auch keinen Einfluss. Der Anker hilft mir daher leider nicht weiter.

>> die Sicherheitseinstellungen moderner Browser verhindern, daß man auf "fremde" Frames zugreifen kann

Hatte so etwas bereits befürchtet. Aber die Hoffnung stirbt ja immer zuletzt. Und manchmal hat ja auch einer der Spezialisten eine Idee ... Alternativen ... etc.?

Viele Grüße
Wulf


als Antwort auf: [#226205]

Seiteninhalt mit Onload beobachten und bei reload nach oben Scrollen

oesi50
  
Beiträge gesamt: 2315

28. Apr 2006, 18:11
Beitrag # 4 von 10
Beitrag ID: #226222
Bewertung:
(8401 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
alternativ kannst du die "fremde" Seite mit einem serverseitigem Script laden. Dieses Script kann dann den Code nach Lust und Laune modifizieren und weiter durchreichen.

http://vsrv.de/..._den_quelltext.shtml


als Antwort auf: [#226221]
(Dieser Beitrag wurde von oesi50 am 28. Apr 2006, 18:12 geändert)

Seiteninhalt mit Onload beobachten und bei reload nach oben Scrollen

Wulf
Beiträge gesamt: 80

28. Apr 2006, 18:48
Beitrag # 5 von 10
Beitrag ID: #226230
Bewertung:
(8393 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Oesi,

ja. Parsen nennt man das glaube ich.

In der einfachen Form wie auf der Seite dargestellt habe ich das auch schon gemacht: Seite einlesen, speziellen Content auslesen, in meinen Code einbauen, ausgeben ... Schwierig wird es aber, wenn man die Links so anpassen muss, dass sie auch auf der eigenen Seite und beim weiteren Surfen (also auf den Unterseiten) noch funktionieren.

Habe zwar insgesamt schon mal über das Thema nachgedacht um das leidige IFrame-Thema vom Hals zu bekommen, aber noch nie gemacht.

Scheint mir ohne ausreichende Erfahrung auch nicht ganz einfach zu sein. In diesem Fall müsste ich das Frameset bzw. die einzelnen Frames pasen, diese zusammensetzen, die Links verändern ... Und bei vielen Seiten käme noch hinzu, dass per JS-Funktion erzeugte Links im Script zu erkennen, zu interpretieren und anzupassen wären.

Das ist ja schon ohne Frameset recht anspruchsvoll, viel lernen und wahrscheinlich viel, viel Aufwand ...

BTW trotzdem eine Frage: Bei meiner (recht oberflächlichen) Recherche zu dem Thema bin ich auf keine Seite gestoßen, die das Thema Parsen per PHP (mit Linkanpassung, JS-Interpretation, etc.) wirklich gut bzw. auch nur ansatzweise erklärt. Kennst Du dazu den einen oder anderen Link? Weißt Du, ob es dazu evtl. fertige Scripte im Netz gibt?

Viele Grüße
Wulf


als Antwort auf: [#226222]

Seiteninhalt mit Onload beobachten und bei reload nach oben Scrollen

oesi50
  
Beiträge gesamt: 2315

28. Apr 2006, 19:14
Beitrag # 6 von 10
Beitrag ID: #226231
Bewertung:
(8385 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
parsen wird in deinem Fall nicht notwendig sein. Einfaches globales Suchen/Ersetzen mit regulären Ausdrücken dürfte für deinen Fall ausreichen.

Dabei sind nur folgende Fälle zu beachten:

1. absoluter Link
2. Link relativ zum Server root
3. Link relativ
4. Base href


für schwierigere Sachen ist WWW::Mechanize zu empfehlen.

http://search.cpan.org/...lib/WWW/Mechanize.pm


als Antwort auf: [#226230]
(Dieser Beitrag wurde von oesi50 am 28. Apr 2006, 19:19 geändert)

Seiteninhalt mit Onload beobachten und bei reload nach oben Scrollen

Wulf
Beiträge gesamt: 80

29. Apr 2006, 06:38
Beitrag # 7 von 10
Beitrag ID: #226261
Bewertung:
(8373 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Oesi,

danke für den Linktipp.

Scheint ja eine umfassende Methodensammlung zu sein. Aber für einen, der das noch nicht gemacht hat ist es auch (wie nicht anders erwartet) ziemlich komplex ... Und Hut ab, da gehört schon einiges Know How dazu.

Na ja, irgendwann werde ich mich damit wohl auch mal eingehender beschäftigen. Aktuell ist das aber eine zu langwierige Lösung für mich. Mein Prob muss ich aber schon aus Zeitgründen auf klassischem Weg lösen ... Hoffe immer noch auf eine Idee. Aber die Hoffnung stirbt ja wie gesagt immer zuletzt.

(Da Du Dich damit sehr gut auskennst: Hast Du evtl. auch eine URL zur Hand nach dem Motto: Parsen für Einsteiger?)

Nochmals Danke für die Hinweise.

Viele Grüße
Wulf


als Antwort auf: [#226231]

Seiteninhalt mit Onload beobachten und bei reload nach oben Scrollen

SabineP
Beiträge gesamt: 7586

29. Apr 2006, 09:39
Beitrag # 8 von 10
Beitrag ID: #226266
Bewertung:
(8369 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Wulf,

vielleicht ist das Script grabnpaste das Richtige für Dich.
Damit kannst Du den HTML-Code fremder Seiten einlesen,
verändern und in eigene Seiten einsetzen.

http://www.skriptoase.de/...ase/grabnpaste.shtml
Mit Beispielkonfigurationen und Handbuch, alles in deutscher Sprache.

So wie ich das verstanden habe, brauchst Du ja nur einen Anker in einem Frame einer fremden Seite,
um zu diesem Anker zu springen beim Laden des Framesets.

Gruß Sabine


als Antwort auf: [#226261]
(Dieser Beitrag wurde von SabineP am 29. Apr 2006, 09:40 geändert)

Seiteninhalt mit Onload beobachten und bei reload nach oben Scrollen

oesi50
  
Beiträge gesamt: 2315

29. Apr 2006, 10:14
Beitrag # 9 von 10
Beitrag ID: #226269
Bewertung:
(8363 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat In der einfachen Form wie auf der Seite dargestellt habe ich das auch schon gemacht: Seite einlesen, speziellen Content auslesen, in meinen Code einbauen, ausgeben ... Schwierig wird es aber, wenn man die Links so anpassen muss, dass sie auch auf der eigenen Seite und beim weiteren Surfen (also auf den Unterseiten) noch funktionieren.



Wenn du das schon selbst gemacht hast, dürfte es doch nicht so das große Problem sein.

folgende Schritte muss das Script ausführen:

1. Einlesen der fremden Seite
2. <base href="fremde_domain"> hinzufügen
3. deinen Javascript-Code hinzufügen
4. Seite ausgeben

fertig.


als Antwort auf: [#226230]

Seiteninhalt mit Onload beobachten und bei reload nach oben Scrollen

Wulf
Beiträge gesamt: 80

29. Apr 2006, 18:05
Beitrag # 10 von 10
Beitrag ID: #226350
Bewertung:
(8330 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Oesi,

recht herzlichen Dank für die Ermunterung. Weiß ich zu schätzen. Nur ist das wirklich nicht so einfach ... (Ich bewundere die Programmierer, die so etwas mal eben in der Mittagspause erledigen.)

Aber ich würde gerne auf Dich zurück kommen, wenn ich mich dem Thema Parsen mal aktiv annehme.
:-))

Viele Grüße
Wulf


als Antwort auf: [#226269]
X