HighDots Forums  

Codeschnipsel einfügen

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


Discuss Codeschnipsel einfügen in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Ralf K.
 
Posts: n/a

Default Codeschnipsel einfügen - 10-24-2007 , 04:01 AM






Hallo,

habe gar keine Ahnung von Javascript. Ich möchte einfach nur diesen
Schnipsel in meine Seite einfügen:

if (document.forms.length > 0)

Meine Seite ist ein Formular und dieser Schnipsel soll bewirken, dass
der Mauszeiger automatisch ins erste Feld springt. Es steht irgendwas
von onLoad setzen, aber keine Ahnung wie das geht.

Außerdem habe ich auch keinen Zugriff auf den <HEAD> Bereich da ich
nur Redakteur für eine Typo3 Seite bin. Allerdings kann ich PHP Code
einbinden und möchte das Javascript dort auch platzieren (das geht).

Vielen Dank schonmal...



Reply With Quote
  #2  
Old   
David Fuhr
 
Posts: n/a

Default Re: Codeschnipsel einfügen - 10-24-2007 , 04:14 AM






Ralf K. schrieb:

Quote:
Meine Seite ist ein Formular und dieser Schnipsel soll bewirken, dass
der Mauszeiger automatisch ins erste Feld springt.
<input type="text" onload="this.focus();" />

oder was in der art sollte doch tun, oder nicht?



Reply With Quote
  #3  
Old   
Ralf K.
 
Posts: n/a

Default Re: Codeschnipsel einfügen - 10-24-2007 , 04:23 AM



<input type="text" name="strasse" size="25" maxlength="60"
onload="this.focus();">

Geht leider nicht. Oder muss ich in der Seite noch irgendwo etwas
anderes einfügen?



Reply With Quote
  #4  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Codeschnipsel einfügen - 10-24-2007 , 06:59 AM



David Fuhr wrote:
Quote:
Ralf K. schrieb:
Meine Seite ist ein Formular und dieser Schnipsel soll bewirken, dass
der Mauszeiger automatisch ins erste Feld springt.

input type="text" onload="this.focus();" /

oder was in der art sollte doch tun, oder nicht?
Das input-Element hat kein onload-Attribut in gültigem HTML, noch
unterstützt das irgendein UA in proprietärer Weise; es kann also
so nicht funktionieren.

Könntest Du bitte Deine kühnen Vermutungen für Dich behalten? Es
ist hier niemandem damit geholfen, wenn jeder sein Halbwissen (wenn
überhaupt) postet!


kopfschüttelnd,
PointedEars
--
Aber das Sperren der rechten Maustaste hat auch seine Vorteile: so
bleibt uns der Anblick einer ganzen Menge dilettantisch und lieblos
zusammengewurstelten Quellcodes erspart. (Ulrich 'Droeppez' Kritzner in
http://selfhtml.de/forum/zeigebeitra...4&thread=31592)


Reply With Quote
  #5  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Codeschnipsel einfügen - 10-24-2007 , 07:23 AM



Ralf K. wrote:
Quote:
habe gar keine Ahnung von Javascript.
Schlechte Voraussetzungen, um hier angebotene Lösungen zu verstehen oder gar
umsetzen zu können. Besorg Dir einen Minimalclue ... und einen Nachnamen.

http://dcljs.de/

Quote:
Ich möchte einfach nur diesen Schnipsel in meine Seite einfügen:

if (document.forms.length > 0)
Das tut für sich erstmal nichts. Die if-Anweisung überprüft lediglich,
ob es überhaupt ein form-Element gibt.

Quote:
Meine Seite ist ein Formular und dieser Schnipsel soll bewirken, dass
der Mauszeiger automatisch ins erste Feld springt.
Schlechte Idee, denn man kann dann nur noch eingeschränkt mit der Tastatur
navigieren.

Quote:
Es steht irgendwas von onLoad setzen, aber keine Ahnung wie das geht.
....

Quote:
Außerdem habe ich auch keinen Zugriff auf den <HEAD> Bereich da ich
nur Redakteur für eine Typo3 Seite bin.
Verwende das onload-Event-Handler-Attribut des body-Elements.
Ausnamhsweise[tm](!) müsste der Code in Deinem Fall komplett inline sein:

<body onload="var f;
if (typeof document != 'undefined'
&& document.forms
&& document.forms.length > 0
&& (f = document.forms[0]))
{
for (var i = 0, es = f.elements, len = es && es.length;
i < len;
i++)
{
var o = es[i];
if (/^\s*text\s*$/i.test(o.type))
{
o.focus();
break;
}
}
}">
...
</body>

Besser wäre es jedoch, könntest Du einen Benutzer mit mehr
Bearbeitungsprivilegien überzeugen, eine Methode handleLoad() mit dem Wert
des obigen onload-Attributs als Inhalt innerhalb des head-Elements zu
deklarieren, die Du dann mit

<body onload="handleLoad();">

aufrufst.

Quote:
Allerdings kann ich PHP Code einbinden
Irrelevant, da das serverseitig geparst wird.

Quote:
und möchte das Javascript dort auch platzieren (das geht).
Tatsächlich weist Du PHP damit lediglich an, den clientseitigen Script-Code
auszuliefern. Das nützt Dir hier aber nichts, weil der Code im
onload-Handler auf etwas zurückgreifen muss, was vorher (d.h. im
head-Element) definitiv deklariert wurde.


PointedEars
--
CSS ist keine Darstellungsvorschrift, sondern ein Darstellungsvorschlag
mit eingebautem "Ich weiß es aber besser"-Recht auf Seiten des userAgent.

(Georg Maaß in dcljs <amuna7$9fbuu$1 (AT) ID-3551 (DOT) news.dfncis.de>)


Reply With Quote
  #6  
Old   
Ferry Bolhar
 
Posts: n/a

Default Re: Codeschnipsel einfügen - 10-24-2007 , 07:35 AM



David Fuhr:

Quote:
Meine Seite ist ein Formular und dieser Schnipsel soll bewirken, dass
der Mauszeiger automatisch ins erste Feld springt.

input type="text" onload="this.focus();" /

oder was in der art sollte doch tun, oder nicht?
"onload" gibts mit <input> nicht. Es sollte aber mit

<body onload="document.getElementById('inp1').focus()">
....

<input type="text" id="inp1" />

funktionieren.

LG, Ferry

--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol (AT) adv (DOT) magwien.gv.at




Reply With Quote
  #7  
Old   
Ferry Bolhar
 
Posts: n/a

Default Re: Codeschnipsel einfügen - 10-24-2007 , 07:41 AM



Thomas Lahn:

Quote:
Könntest Du bitte Deine kühnen Vermutungen für Dich behalten? Es
ist hier niemandem damit geholfen, wenn jeder sein Halbwissen (wenn
überhaupt) postet!

kopfschüttelnd,
Wenn ich den Kopf schüttele, dann darüber, dass du, der sicher zumindest
eine Lösungsmöglichkeit für dieses Problem kennt, diese hier nicht
weitergibt.
Damit wären allen mehr geholfen als durch deinen "Ratschlag", meinst du
nicht auch?

LG, Ferry

--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol (AT) adv (DOT) magwien.gv.at




Reply With Quote
  #8  
Old   
Alexander Clauss
 
Posts: n/a

Default Re: Codeschnipsel einfügen - 10-24-2007 , 08:06 AM



Thomas 'PointedEars' Lahn <PointedEars (AT) web (DOT) de> wrote:

Quote:
Verwende das onload-Event-Handler-Attribut des body-Elements.
Du weisst aber schon, das das die schlechteste aller Lösung für dieses
Problem ist. Und insbesondere kann diese Lösung auch Sicherheitsprobleme
aufwerfen, wenn der User eine solche Seite aufruft und nicht alleine
ist. Man stelle sich vor, die Seite lädt, das Formular (ein
Login-Formuar) ist da, der User fängt an seinen Usernamen und Passwort
einzugeben. Während der Passorteingabe ist die Seite fertig mit laden,
und jetzt schlägt der onload-Handler zu und setzt den Focus auf das
erste Eingabefeld (das mit dem Usernamen). Der User merkt das natürlich
nicht sofort, und schreibt nun sein Passort munter für alle Anwesenden
lesbar im Klartext ins Feld für den Usernamen zuende.

Selbst wenn niemand zusieht, ist das natürlich kontroproduktiv, denn
anstatt dem User zu "helfen" und Arbeit abzunehmen (der Klick ins erste
Eingabefeld soll ja entfallen), mutet man ihm zusätzliche Arbeit auf,
weil er seine Eingaben nun korrigieren muß, oder warten muß, bis die
Seite auf tatsächlich fertig geladen ist (letzteres geht nur, wenn man
weiß, was die Seite überhaupt für Schweinereien anstellt).

Wenn man unbedingt einen Focus setzen will (das öfters als man denkt
kontraproduktiv), dann auf alle Fälle nicht(!) über einen
onload-Handler, sondern direkt in einen Script-Block der irgendwo hinter
dem zu fokusierenden Input-Element steht. Dort kann man dann direkt das
machen, was man sonst im onload-Handler gemacht hätte, das wird dann
sofort beim Parsen/Rendern des Codes ausgeführt und nicht erst wenn auch
das letzte Bild fertig geladen wurde.

Am besten lässt man das aber ganz sein, und überlässt es dem User zu
entscheiden. Wo im Formular (und ob überhaupt) er seine Eingaben zuerst
machen will.

Quote:
Ausnamhsweise[tm](!) müsste der Code in Deinem Fall komplett inline sein:
Warum?

--
Alexander


Reply With Quote
  #9  
Old   
Alexander Clauss
 
Posts: n/a

Default Re: Codeschnipsel einfügen - 10-24-2007 , 08:10 AM



Ferry Bolhar <bol (AT) adv (DOT) magwien.gv.at> wrote:

Quote:
diese hier nicht
weitergibt.
Hat er doch.

Siehe: <471F3925.7070305 (AT) PointedEars (DOT) de>


Auch wenn die Lösung leider so ihre Tücken hat.

Siehe: <1i6hsq4.di17je1kumikgN%aclauss (AT) hrzpub (DOT) tu-darmstadt.de>

--
Alexander


Reply With Quote
  #10  
Old   
Alexander Clauss
 
Posts: n/a

Default Re: Codeschnipsel einfügen - 10-24-2007 , 08:10 AM



Ferry Bolhar <bol (AT) adv (DOT) magwien.gv.at> wrote:

Quote:
body onload="document.getElementById('inp1').focus()"
...

input type="text" id="inp1" /

funktionieren.
Ja, man sollte es aber dennoch nicht(!) so machen.

Siehe: <1i6hsq4.di17je1kumikgN%aclauss (AT) hrzpub (DOT) tu-darmstadt.de>

--
Alexander


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.