HighDots Forums  

Anker in dynamisch erzeugtem HTML anspringe

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Anker in dynamisch erzeugtem HTML anspringe in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Torsten Robitzki
 
Posts: n/a

Default Anker in dynamisch erzeugtem HTML anspringe - 05-23-2007 , 09:38 AM






Hallo,
ich möchte den Inhalt eines DIVs durch eine via asynchronem HTTP
geladene HTML-Seite austauschen und dann zu einem Anker auf der Seite
navigieren. In etwas so:

var inhalt = ...;
$('DIV_name').innerHTML = inhalt;
window.location.hash = '#Anker';

Leider funktioniert dies weder im FF 1.5, NS 7.1 oder IE 7.0
zuverlässig. Verzögere ich die letzte Zuweisung über setTimeout() um 0
oder mehr Milisekunden, so fängt es langsam an, in dem einen oder
anderen Browser zu funktionieren und bei einer Sekunde funktioniert es
bei allen drei Browsern. Das kann aber nicht wirklich eine Lösung sein.

Kennt jemand von euch das Problem und evtl. auch einen workaround? Im
Kleinen konnte ich das Problem übrigens nicht reproduzieren.

mfg Torsten


Reply With Quote
  #2  
Old   
Torsten Robitzki
 
Posts: n/a

Default Re: Anker in dynamisch erzeugtem HTML anspringe - 05-24-2007 , 09:17 AM






Hallo Georg,

Georg Maaß wrote:

Quote:
Wenn der Anker erst durch die Zuweisung an innerHTML vorbereitet wird,
dann kann der Sprug zum Anker nicht sofort nach der Vorbereitung
funktionieren, sondern erst, wenn das vorbereitet auch gerendert ist.
Ist der Begriff Vorbereitung in dem Zusammenhang irgend wie fest belegt.
Gibt es dazu Spezifikationen, in denen man das Nachlesen kann? Ich
erzeuge einiges an dynamischen HTML, das später auch noch mal geändert
wird. Das Funktioniert so weit auch ganz gut. Wenn ich Dich jetzt
richtig verstanden habe, muss es dies aber nicht.

Gebe es den eine Möglichkeit, das Ende der Vorbereitung mit einem Event
zu erfassen oder im Notfall danach zu pollen?

Quote:
Bei alten Browsern könnte es bei document.write statt innerHTML gehen,
weil alte Browser bei document.write sofort rendern. Neuere render auch
das verzögert, so daß man nur weiß, wo es landert, aber nicht weiß, wann
es verfügbar ist.
Ältere Browser als IE 6.0 und FF 1.5 wollte ich eigentlich nicht aktiv
unterstützen. Ich frage mich nur gerade, auf was man sich da überhaupt
verlassen kann.

mfg Torsten



Reply With Quote
  #3  
Old   
Torsten Robitzki
 
Posts: n/a

Default Re: Anker in dynamisch erzeugtem HTML anspringe - 05-25-2007 , 08:15 AM



Torsten Robitzki wrote:

Quote:
Hallo,
ich möchte den Inhalt eines DIVs durch eine via asynchronem HTTP
geladene HTML-Seite austauschen und dann zu einem Anker auf der Seite
navigieren. In etwas so:

var inhalt = ...;
$('DIV_name').innerHTML = inhalt;
window.location.hash = '#Anker';

Leider funktioniert dies weder im FF 1.5, NS 7.1 oder IE 7.0
zuverlässig.
Ich habe jetzt einen Workaround gefunden, in dem ich mit 100Hz das array
document.achors nach diesem Anker durchsuche. Nachdem es auffindbar ist,
funktioniert das recht gut.

mfg Torsten



Reply With Quote
  #4  
Old   
Bernd Muent
 
Posts: n/a

Default Re: Anker in dynamisch erzeugtem HTML anspringe - 06-01-2007 , 06:49 AM



* Torsten Robitzki wrote:

Quote:
ich möchte den Inhalt eines DIVs durch eine via asynchronem HTTP
geladene HTML-Seite austauschen und dann zu einem Anker auf der Seite
navigieren. In etwas so:

var inhalt = ...;
$('DIV_name').innerHTML = inhalt;
window.location.hash = '#Anker';
Wie wäre es mit einem .focus() auf ein Element innerhalb des div,
nachdem es erzeugt ist. Damit müßte der Browser dorthin springen.

B.

--
BM Computer-Services, Bergmannstr. 66, 10961 Berlin
Webdesign, Internet, Layout und Grafik
Tel.: 030/20649400, mobil 0175/7419517, Fax: 030/20649401
Web: http://www.bmservices.de, eMail: kontakt (AT) bmservices (DOT) de


Reply With Quote
  #5  
Old   
Torsten Robitzki
 
Posts: n/a

Default Re: Anker in dynamisch erzeugtem HTML anspringe - 06-02-2007 , 02:36 AM



Hallo Bernd,

Quote:
Wie wäre es mit einem .focus() auf ein Element innerhalb des div,
nachdem es erzeugt ist. Damit müßte der Browser dorthin springen.
das habe ich jetzt nicht mehr ausprobiert, da der von mir skizzierte
Works around ganz gut funktioniert. Aber trotzdem Danke für die Anregung.

mfg Torsten



Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.