User since
2006-06-09
76
Artikel
BenutzerIn
Hi,
Mein Problem ist, dass ich eine Seite neu laden muss, u. dannach sollte an die selbe Stelle gesprungen werden.
mit Ankern habe ich das ganze nicht hinbekommen:
var location = window.location.href + "#Anker"
document.location.href = location;
Hier wird die Seite z.B. nicht neu geladen, sondern es wird einfach zum Anker gesprungen. Außerdem bleibt das #Anker in der Adressleiste, wenn ich also nochmal neu laden muss, dann habe ich 2 mal #Anker oder eben 2 Anker hinter der Adresse stehen!
Gibt es hier eine JavaScript lösung ohne Anker? Es ist egal, ob man die Seite nur mit JS aktiviert ansehen kann, die Lösung sollte einfach relativ einfach umzusetzen sein u. am besten haargenau dorthin zurückspringen, wo man sich gerade befindet, was mit Ankern ja nicht ganz so gut geht.
Wäre toll wenn jemand eine Lösung über JS hätte!
User since
2005-01-17
14745
Artikel
Admin1
var location = window.location.href;
var d = new Date;
// getTime liefert die aktuelle Zeit im Millisekunden
window.location.href = location + '?' + d.getTime() + '#Anker';
Damit hat die URL immer einen neuen Parameter und müsste neu geladen werden ;)\n\n
<!--EDIT|GwenDragon|1152547807-->
User since
2006-06-09
76
Artikel
BenutzerIn
ich verstehe dein Beispiel nicht so ganz!
Was machst du? gibtst du dem Hyperlink den man klickt etwa einen Anker u. klädst dann neu? Aber dann wird der Anker doch nicht mehr gefunden nach neu laden, außerdem sieht man den Link garnicht, der wird nähmlich auch dynamisch erstellt übers DOM.
Ich habe folgenden Ansatz im Sinne:
alert (window.pageYOffset);
window.pageYOffset = window.pageYOffset + 40;
alert (window.pageYOffset);
Ich übergebe die PageYOffset Possition an die Adresse im Browserfenster, und wenn die Page neu geladen wird, dann springt er an die Stelle die übergeben wird.
Wenn man das Beispiel nun aber ausprobiert, wird man feststellen, dass das window.pageYOffset + 40 nicht funktioniert, das heist man kann den Wert nur auslesen, nicht aber einen neuen definieren!? Gibts da noch einen Befehl mit dem das möglich wäre, den Wert zu setzen u. nicht nur auszulesen?
EDIT:
danke für die Hilfe, es funktioniert mit "scrollTo(x-wert, y-wert)" wunderbar!
Jetzt muss ich nur noch wissen wir man den y Wert an die Browserdomain anhängen kann, zusammen mit dem reload befehl, u. dann wenn geladen wurde, die Variable wieder auslesen kann aus der Domain.\n\n
<!--EDIT|Danwe|1152542716-->
User since
2005-01-17
14745
Artikel
Admin1
Tut mir leid. Hier ist die Kühlung ausgefallen und die Sonne knallt ziemlich ins Zimmer. Da passieren Denkfehler.
scrollTo(0, YOffset);
Speichers in einem Cookie ;)\n\n
<!--EDIT|GwenDragon|1152549118-->
User since
2006-06-09
76
Artikel
BenutzerIn
In einem Cookie? Keine ahnung wie das geht ???
Ich glaube es ist benutzerfreundlicher, wenn ich es einfach an die Adresse anhänge, oder?
das mache ich einfach über eine Stringoperation, ich hänge an die URL noch ?varname=varwert an, durch & kann man wohl verschiedene Vars trennen. Dannach noch eine Stringfunktion die mir das auswertet schreiben u. eine Stringfunktion, die das richtig anhängt u. das alte anhängsel vorher löscht.
Nur gits noch das Problem, dass wenn ich einen String nach einem ? durchsuchen möchte, das nicht geht, ? ist wohl irgendein regulärer ausdruck oder sonst was, was muss ich machen wenn ich nach einem Fragezeichen im String suchen möchte? Habe dafür keine sonderzeichen gefunden, z.B. \? wärs doch in Perl, oder?\n\n
<!--EDIT|Danwe|1152606739-->
User since
2003-08-21
2614
Artikel
ModeratorIn
Es gibt doch in Javascript eine Funktion zum Neuladen (window.reload, wenn ich mich richtig erinnere). Sollte der Browser da nach dem Neuladen nicht automatisch an die richtige Stelle zurueckspringen?
User since
2006-06-09
76
Artikel
BenutzerIn
Ne, das ist wie gesagt das was ich gemacht habe. Das ist wie wenn du den reload button klickst.
Die andere Lösung geht ja jetzt, mit Y Position aus u. einlesen.