Javascript / Focus / scrolling prob

10/23/2008 21:09 Mizu#1
Ich muss nun in na Typo3 Seite den Focus auf ein bestimmten Text setzen.
Hab noch nie mit Typo3 in verbindung mit javascript gearbeitet.

Also ich habe bisher dem Text eine ID gegeben (id="anchor"), dabei dachte ich mir mit document.getElementById.focus() direkt zu der Stelle swappen zu können, das klappte nun aber nicht, hab auch andere Varianten probiert.

Kann mich noch wage dran erinnern das mal irgendwie mit Ajax gemacht zu haben aber ich sitzt nun schon seit 0900 im Büro und kann keinern klaren Gedanken mehr fasse.

Bitte hilfe :handsdown:
10/23/2008 21:19 verT!c4L#2
Was machst du eigentlich beruflich?
Wollt ich dich letzte mal schon fragen als du auch was mit javascript hattest ^^

Was muss man sich denn unter fokus jetzt denken? oO
Ist die Site so groß, sodass der frame positioniert werden muss oder wat is das?

Edit: kein plan ob das jetzt passt oder nicht:
aber kannst nicht die positionswerte des textes auslesen, nachdem du das element hast,
um dann widerum den fokus zu setzen?
Oder bin ich nur im falschen Film ?!
10/23/2008 21:21 Mizu#3
Bin halt Mediengestalter und mach da so gut wie alles.
Seit Montag das eigene Büro, also nur noch Programmierung und Animation.

Also als focus() ist zu verstehen dass es sozusagen ne Liste gibt die nach unten verläuft 1
2
3
4
...

und ich will dass der Browser z.b. direkt auf die 340 springt, also so dass die 340 direkt oben am Browser ist.
10/23/2008 21:26 verT!c4L#4
Achso, jetz kapier ich...
das macht das forum z.b. wenn man den letzten post sich anzeigen lässt.
leider seh ich grad nicht mit firebug ob das mit javascript läuft
aber machbar sollte das sein...

eigenes Büro oO
Das dauert bei mir noch... :/

Edit: Das soll funktionieren:

window.onload = function(){
document.getElementById("static").scrollTop=Wert;
}

Edit2:
scrollTo klingt noch besser...
[Only registered and activated users can see links. Click Here To Register...]

wenn du die positionswerte auslesen kannste sollte das die lösung sein.

die variablen musste selbstverständlich anpassen.
10/23/2008 21:48 Mizu#5
Probier das gleich mal aus, sitze noch an nem Typo3 Formular
Vorhin hatte ich aber das Prob dass er die ID nicht gefunden hat "null objekt bla bla" dementsprechend wollte ich mich eher von getelementbyid entfernen, werde es aber trotzdem gleich mal ausprobieren.
danke schonmal, falls dir noch was feines einfällt, ajax oso wäre super.
10/23/2008 22:37 verT!c4L#6
Ähm Mizu ?! oO
Ajax ist Javascript... man sagt nur mittlerweile Ajax weil cooler und so ^^
aber eine wirkliche ernsthafte unterscheidung ist da nicht :P

null objekt? ehm vlt wird das script zum falschen zeitpunkt ausgeführt
sodass es noch nicht generiert wurde ?!
10/23/2008 23:07 Mizu#7
Also für mich sind bestimmte Javascript Befehle die dynmischer sind als der standard, also z.b. fading close von nem Bereich.., naja whatever

mir ist gerade aufgefallen dass es schon 11 ist und ich warscheinlich garnicht mehr nachhause komme xD

erstes mal im Büro pennen rockt ....

Wie kann ich das denn ändern , falls das Script zu früh ausgeführt wird ?
sleep ?`^^
10/23/2008 23:36 verT!c4L#8
naja könntest die Scroll-Funktion durch ein event triggern,
oder aber die onload funktion benutzen...
weiß grad nicht wie dein Grundgerüst aussieht
bzw zu welchem zeitpunkt das relevant ist.

event-driven is glaub die beste wahl in dem fall, oder?

hier im forum zum beispiel wird das ja auch getriggert.
du bist noch auf arbeit gerade? oO
Dann wünsch ich dir mal eine möglichst bequeme nacht ^^

Edit: das mit dem fading is doch bloß eine zusammenstellung von code
welchen dann insgesamt diesen effekt bildet... oder sind die
Befehle dafür neu die da benutzt werden? ó.Ò
Vergessen wir das... ajax klingt einfach auch cooler von daher xD
10/23/2008 23:55 Mizu#9
Code:
url=document.URL;
var Ergebnis = url.search(/Veranstaltungskalender.+/);
if (Ergebnis != -1 ){
	var aktiv = setInterval("gotoAnchor()", 5000);
	function gotoAnchor(){
	document.getElementById("anchor").focus();
	window.clearInterval(aktiv);
	alert(document.getElementById("anchor").id);
	}
	

	

	}
Also relativ simpel gehalten.
Beim alert gibt er mir auch genau aus was ich will.
trotzdem bewegt das skript nicht sein arsch ...

Code:
<div id="anchor" style="color: #000; float: left;padding: 5px 2px; margin: 1px 0;width: 70px;">23.10.2008</div>
10/24/2008 08:58 verT!c4L#10
Was gibt er dir denn aus?
Ich such grad nach dieser focus funktion, aber irgendwie bin ich grad noch
zu verklatscht von gestern ^^

Wie ich das heir so lese ist die focus()-Funktion lediglich dazu da
zwischen fenstern/ frames zu switchen.
vlt doch eher scrollTo() ?

[Only registered and activated users can see links. Click Here To Register...]
10/24/2008 11:34 Mizu#11
Guten Morgen.

Werde mir den Code gleich nochmal anschauen und ggf. nach der leichtesten Methode suchen .... typo3 extension ^^

Aber gut zu wissen dass focus fürn Arsch ist ^^

EDIT: Habs mir noch nicht angschaut aber bei ScrollTo gibts ja das Prob mit der position, die ich dann erst irgendwie der id des objekts entnehmen müsste.
10/24/2008 11:36 verT!c4L#12
Naja fürn Arsch ist es nun nicht,
nur halt untauglich wenns um sowas geht anscheinend.

Sag bescheid wenn du es hin bekommen hast,
ansonsten setz ich mich später zu Haus da mal
intensiver dran ^^

OT: hast gut pennen können im Büro ? xD
10/24/2008 12:09 Mizu#13
Code:
url=document.URL;
var Ergebnis = url.search(/Veranstaltungskalender.+/);
if (Ergebnis != -1 ){
	var aktiv = setInterval("gotoAnchor()", 3000);
	function gotoAnchor(){
		window.clearInterval(aktiv);
		var objDiv = document.getElementById("anchor");
			objDiv.scrollTop = objDiv.scrollHeight;
			sHeight = objDiv.scrollHeight+300;
			window.scroll(0,sHeight);
	}}
So funktionierts, man ich hab mir wegen den noobscheiss wirklich ein abgebrochen.
nur dass die position halt total random ist, scrollheight ist immer 25 egal auf welche id ich setze. und die 300 dahinter war nur als test.

Also muss ich die posi noch auslesen, denke aber mal das sollte kein prob sein.

OT: Wurde vom Cheff mit 200 Sachen nachause kutschiert und durfte ne Stunde später kommen ;)
2 Uhr war ich daheim :(
10/24/2008 12:57 verT!c4L#14
Quote:
var objDiv = document.getElementById("anchor");
objDiv.scrollTop = objDiv.scrollHeight;
Das hab ich mir auch schon so gedacht :P
Was isn wenn du anstatt objDiv.scrollTop -> objDiv.scrollTo() machst?
Musst dann glaub ich noch Positionswerte hinzufügen oder aber vlt auch nicht.

Warum funktioniert bei dir eigentlich die Code-Ausrichtung? xD
Frechheit! ^^
10/24/2008 13:03 Mizu#15
Code:
document.getElementById("anchor").scrollHeight;
also das gibt mir immer 25 aus egal wo ich den anchor gesetzt habe ...

Die Codeausrichtung .. naja weil keine ahnung ^^