/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Script til at slette tekstfelt ?
Fra : Peter


Dato : 28-08-09 20:29

Hej NG!

I min formular har jeg et felt med "startværdi" altså et tekstfelt der
allerede har en tekst (et spørgsmål) stående. Det virker ikke smart, da den
"besøgende" på siden, først skal sætte curseren i feltet og dernæst slette
den indsatte tekst med "backspace" (slettetasten). Kan det ikke gøres ved at
feltet bliver "ryddet" i samme øjeblik man placerer musecurseren i feltet ?

hilsen
Peter



 
 
Philip Nunnegaard (28-08-2009)
Kommentar
Fra : Philip Nunnegaard


Dato : 28-08-09 22:04

Peter skrev:

> I min formular har jeg et felt med "startværdi" altså et tekstfelt der
> allerede har en tekst (et spørgsmål) stående. Det virker ikke smart, da den
> "besøgende" på siden, først skal sætte curseren i feltet og dernæst slette
> den indsatte tekst med "backspace" (slettetasten). Kan det ikke gøres ved at
> feltet bliver "ryddet" i samme øjeblik man placerer musecurseren i feltet ?

Er ikke afprøvet:

<input type="text" (...indsæt selv parametre/attributter...)
value="Skriv her" onfocus="this.value='';" />


--
Philip - http://chartbase.dk

Philip Nunnegaard (28-08-2009)
Kommentar
Fra : Philip Nunnegaard


Dato : 28-08-09 23:07

Philip Nunnegaard skrev:

> Er ikke afprøvet:
>
> <input type="text" (...indsæt selv parametre/attributter...)
> value="Skriv her" onfocus="this.value='';" />

Jeg har nu afprøvet det, og det virker i alle browsere som jeg har ved
hånden.

Men måske Birger eller en anden javascripthaj kan uddybe, hvis dette
"this.value" ikke er korrekt javascript, og man evt. *skal* bruge
document.getElementById.

--
Philip - http://chartbase.dk

Rune Jensen (28-08-2009)
Kommentar
Fra : Rune Jensen


Dato : 28-08-09 23:34

Philip Nunnegaard skrev:

> Men måske Birger eller en anden javascripthaj kan uddybe, hvis dette
> "this.value" ikke er korrekt javascript, og man evt. *skal* bruge
> document.getElementById.

¨Jeg har stor tiltro til quirksmode, det er kort og forholdsvist klart.

http://www.quirksmode.org/js/this.html


MVH
Rune Jensen

Philip Nunnegaard (29-08-2009)
Kommentar
Fra : Philip Nunnegaard


Dato : 29-08-09 01:50

Rune Jensen skrev:

>> Men måske Birger eller en anden javascripthaj kan uddybe, hvis dette
>> "this.value" ikke er korrekt javascript, og man evt. *skal* bruge
>> document.getElementById.
>
> ¨Jeg har stor tiltro til quirksmode, det er kort og forholdsvist klart.
>
> http://www.quirksmode.org/js/this.html

For lige at sikre at jeg har forstået det korrekt:
I ovenstående kontekst (hvor det fremstår som et inline-kald i selve
html-elementet) er det ikke noget problem. Det er først galt, hvis man
ryger ud i en situation hvor det er tvetydigt, hvad "this" er.

Da må konklutionen jo være altid at bruge document.getElementById(). I
hvert fald hvis man er det mindste i tvivl om om det virker.


--
Philip - http://chartbase.dk

Stig Johansen (29-08-2009)
Kommentar
Fra : Stig Johansen


Dato : 29-08-09 15:10

Philip Nunnegaard wrote:

> Da må konklutionen jo være altid at bruge document.getElementById(). I
> hvert fald hvis man er det mindste i tvivl om om det virker.

Uanset om 'man' er i tvivl, vil jeg nok anbefale at bruge getElementById.
(Overdrevent) brug af this og with og anonymous functions sparer måske et
par kodelinier, men til gængæld mistes overblikket.

Her tale jeg ikke om udvikleren i nuet, men vedligeholdelse i fremtiden,
herunder udvikleren, som formentlig har glemt kontext efter et par år.

--
Med venlig hilsen
Stig Johansen

Birger Sørensen (29-08-2009)
Kommentar
Fra : Birger Sørensen


Dato : 29-08-09 15:57

Philip Nunnegaard skrev:
> Philip Nunnegaard skrev:
>
>> Er ikke afprøvet:
>>
>> <input type="text" (...indsæt selv parametre/attributter...) value="Skriv
>> her" onfocus="this.value='';" />
>
> Jeg har nu afprøvet det, og det virker i alle browsere som jeg har ved
> hånden.
>
> Men måske Birger eller en anden javascripthaj kan uddybe, hvis dette
> "this.value" ikke er korrekt javascript, og man evt. *skal* bruge
> document.getElementById.

Problemet er, at "this" ikke altid og nødvendigvis er this...
For overskueligheden og fremtidens skyld, ville jeg også foretrække
document.getElementById()...
Og jeg ville gøre anderledes - den korte version, som skulle virke, i
hvert fald her og nu:
onfocus="this.select();"
markerer indholdet, som så slettes, når brugeren skriver noget.
Forskellen er:
Jeg skriver en tekst i feltet.
Sidder og finder ud af, at jeg har stavet forkert i min email adresse
ovenover.
Går op og retter den, og tilbage til tekstfeltet.
Og den tekst jeg har skrevet er - væk og borte med this.value='', mens
this.select() blot markerer alt det jeg tidligere har skrevet i feltet,
og med en piletast eller andet inden jeg skriver mere, behøver jeg
altså ikke skrive det hele een gang til...

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Stig Johansen (29-08-2009)
Kommentar
Fra : Stig Johansen


Dato : 29-08-09 22:22

Birger Sørensen wrote:

> Og den tekst jeg har skrevet er - væk og borte med this.value='', mens
> this.select() blot markerer alt det jeg tidligere har skrevet i feltet,
> og med en piletast eller andet inden jeg skriver mere, behøver jeg
> altså ikke skrive det hele een gang til...

Smart.
En anden metode jeg har set anvendt er at teste på om .value = 'startværdi'
inden man sletter.

Jeg har ikke lige et eksempel, men det er lige ud ad landevejen.

--
Med venlig hilsen
Stig Johansen

Philip Nunnegaard (30-08-2009)
Kommentar
Fra : Philip Nunnegaard


Dato : 30-08-09 00:29

Stig Johansen skrev:

>> Og den tekst jeg har skrevet er - væk og borte med this.value='', mens
>> this.select() blot markerer alt det jeg tidligere har skrevet i feltet,
>> og med en piletast eller andet inden jeg skriver mere, behøver jeg
>> altså ikke skrive det hele een gang til...
>
> Smart.
> En anden metode jeg har set anvendt er at teste på om .value = 'startværdi'
> inden man sletter.

Det var også min umiddelbare tanke, da jeg læste Birgers svar.
Og så er vi ude i at der kaldes en funktion og ikke bare den
enekltstående "this.value=''".

I den funktion jeg forsøgte mig med, lod jeg teksten som står i feltet
stå med grå skrift. Når man selv udfylder det, bliver teksten almindelig
sort.
Altså har vi både document.getElementById('feltnavn').value='' og
document.getElementById('feltnavn').style.color='#000'.

Og vupti! Så er vi allerede ude i at det er en dårlig ide med "this",
fordi det lægges ud i en funktion.

Men tilbage til sagen:
Min tanke gik så på ikke kun at tjekke på startværdien, men også på
tekstfarven. Så er muligheden for at man faktisk ville bruge
startværdien også elimineret. Jeg har dog ikke afprøvet den mulighed
endnu. Måske ville det i mit tilfælde endda være nok at tjekke på
tekstfarven i det søgefelt som jeg bruger som test lige nu.


--
Philip - http://chartbase.dk

Birger Sørensen (30-08-2009)
Kommentar
Fra : Birger Sørensen


Dato : 30-08-09 02:38

Den 30-08-2009, skrev Philip Nunnegaard:
> Stig Johansen skrev:
>
>>> Og den tekst jeg har skrevet er - væk og borte med this.value='', mens
>>> this.select() blot markerer alt det jeg tidligere har skrevet i feltet,
>>> og med en piletast eller andet inden jeg skriver mere, behøver jeg
>>> altså ikke skrive det hele een gang til...
>>
>> Smart.
>> En anden metode jeg har set anvendt er at teste på om .value = 'startværdi'
>> inden man sletter.
>
> Det var også min umiddelbare tanke, da jeg læste Birgers svar.
> Og så er vi ude i at der kaldes en funktion og ikke bare den enekltstående
> "this.value=''".
>
> I den funktion jeg forsøgte mig med, lod jeg teksten som står i feltet stå
> med grå skrift. Når man selv udfylder det, bliver teksten almindelig sort.
> Altså har vi både document.getElementById('feltnavn').value='' og
> document.getElementById('feltnavn').style.color='#000'.
>
> Og vupti! Så er vi allerede ude i at det er en dårlig ide med "this", fordi
> det lægges ud i en funktion.
>
> Men tilbage til sagen:
> Min tanke gik så på ikke kun at tjekke på startværdien, men også på
> tekstfarven. Så er muligheden for at man faktisk ville bruge startværdien
> også elimineret. Jeg har dog ikke afprøvet den mulighed endnu. Måske ville
> det i mit tilfælde endda være nok at tjekke på tekstfarven i det søgefelt som
> jeg bruger som test lige nu.

Bare for sjov.
Hver for sig
onclick="this.value=(this.value=='starttekst') ? '' : this.value;"
onclick="if (this.style.color!='#000') this.value='';"
eller rodet sammen
onclick="this.value=((this.value=='starttekst')||(this.style.color
!='#000')) ? '' : this.value;"
eller
onclick="if((
this.value=='starttekst')||(this.style.color!='#000'))this.value='';"
Ikke testet

Hvis det ene fører det andet med sig, er der vel heller ingen grund til
at teste begge dele...
Og mener så stadig, at der bør benyttes document.getElementById(), af
samme grunde som tidligere...

onclick="var
elm=document.getElementById('feltnavn');elm.value=((elm.value=='starttekst')||(elm.style.color!='#000'))
? '' : elm.value);"

det er rundt regnet det samme som
var elm=document.getElementById('feltnavn');
if (( elm.value == 'starttekst') || ( elm.style.color != '#000')) {
elm.value = '';
}

og kan vel egentlig godt skrives
onclick="var elm=document.getElementById('feltnavn');if(( elm.value ==
'starttekst')||(elm.style.color != '#000'))elm.value = '';"

men overskueligheden er vist gået fløjten...

Så det er ikke strengt nødvendigt med en funktion. Det bliver det vist
først, når det skal gøre unobtrusive...



Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Philip Nunnegaard (30-08-2009)
Kommentar
Fra : Philip Nunnegaard


Dato : 30-08-09 03:51

Birger Sørensen skrev:

> men overskueligheden er vist gået fløjten...
>
> Så det er ikke strengt nødvendigt med en funktion. Det bliver det vist
> først, når det skal gøre unobtrusive...

Jeps! Overskueligheden er gået fløjten, og her mener jeg så at det
bliver mere overskueligt at skille det ud i en funktion der kaldes ved
onfocus.

Min kom til at se sådan ud i stedet:

<input type="text" name="soegeord" id="soegeord"
value="Indtast søgeord" onfocus="rydfelt('soegeord');" />

Og det tilhørende javascript:

function rydfelt(feltnavn) {
   if(document.getElementById(feltnavn).style.color == '#aaa' ||
document.getElementById(feltnavn).style.color == '') {
      document.getElementById(feltnavn).value = '';
      document.getElementById(feltnavn).style.color = '#000';
   }
}


Det med unobtrusive javascript kender jeg (endnu) kun til fra Runes
indlæg her i gruppen, men jeg "frygter" at det bliver noget jeg snart
bliver nødt til at sætte mig ind i i forbindelse med en side jeg er gået
igang med at kode om fra bunden.

--
Philip - http://chartbase.dk

Stig Johansen (30-08-2009)
Kommentar
Fra : Stig Johansen


Dato : 30-08-09 05:51

Philip Nunnegaard wrote:

> Det med unobtrusive javascript kender jeg (endnu) kun til fra Runes
> indlæg her i gruppen, men jeg "frygter" at det bliver noget jeg snart
> bliver nødt til at sætte mig ind i i forbindelse med en side jeg er gået
> igang med at kode om fra bunden.

Hvis du vil se et eksempel på (næsten) unobtrusive javascript, kan du kigge
her:
<http://w-o-p-r.dk/ufo/show.base.asp?databasename=Ufo_arkiv_notes>
WARNING: bruger frames og target!

Hvis man klikker på et af view name, skuller der komme en oversigt i
hovedframen.

Årsagen til jeg skriver 'næsten' er, at jeg har lagt 'starter' funktionen
ind i <body>.

Jeg er lidt i tvivl om nødvendigheden i, at lægge denne del ud som
unobtrusive også, da jeg ikke synes det ændrer voldsomt meget ved
overblikket.

Princippet er her, at brugere uden javascript blot vil få vist den rå tabel.

Har man derimod slået javascript til, vises tabellen først som usynlig.
Herefter tager javascriptet fat i tabellen via DOM, og gnaver sig ned gennem
rækkerne.

Rækkerne bliver opdelt i 'hovedrækker' og 'underrækker', hvor første kolonne
er den samme.

Hvis vi f.eks har rækkerne:
1 2 3
1 4 5
1 6 7
2 1 1
osv.
bliver de til:
1 2 3
4 5
6 7
2 1 1
osv.

Samtidig bliver der tilføjet en handler på mousedown på hovedrækkerne, som
hhv. viser og skjuler 'underækkerne'.

Det svarer til onclick="et.eller.andet()".

Når 'operationen' er færdig sættes tabellen til 'synlig'.

Det med usynlig/synlig er af hensyn til langsomme browsere (bla min), hvor
tabellen først bliver vist normalt, og efter lidt tid 'swapper' den om til
det manipulerede format.

Så er det bedre at have en tom skærm mens man venter.

Hvis det skulle være pænt, kunne man evt. lave en 'Data indlæses', mens man
venter.

Hvis du skal bruge unobtrusive javascript i dine nye projekter, vil jeg tro
du skal tænke det ind/planlægge det fra starten.

Den side jeg henviser til er egentlig kun noget test af noget teknik, så der
er ikke gjort noget ved styles, borders osv.

Da det er lidt af et helvede (synes jeg) at generere testdata, så jeg mit
snit til at importere nogle data automatisk (fra dk.videnskab).

Når jeg har 'stjålet' data, syntes jeg også jeg ville gøre dem tilgængelige.

Måske, måske ikke kan det give noget inspiration, men nu har du idet mindste
fået et eksempel.

--
Med venlig hilsen
Stig Johansen

Rune Jensen (30-08-2009)
Kommentar
Fra : Rune Jensen


Dato : 30-08-09 09:41

Philip Nunnegaard skrev:

> Det med unobtrusive javascript kender jeg (endnu) kun til fra Runes
> indlæg her i gruppen, men jeg "frygter" at det bliver noget jeg snart
> bliver nødt til at sætte mig ind i i forbindelse med en side jeg er gået
> igang med at kode om fra bunden.

Bare af nysgerrighed - hvad skulle det bruges til, det script?


MVH
Rune Jensen

Philip Nunnegaard (30-08-2009)
Kommentar
Fra : Philip Nunnegaard


Dato : 30-08-09 12:08

Rune Jensen skrev:

> Bare af nysgerrighed - hvad skulle det bruges til, det script?

Vi kan vel lige så godt tage den nu, inden jeg kommer for godt igang.
Det drejer sig om menuen på denne side:

http://chartbase.dk/usenet

Der er 9 hovedmenupunkter plus en masse undermenupunkter.
Tanken er at de er klappet sammen, når man kommer ind på siden, men at
man ved et klik på et hovedpunkt for underpunkterne frem.

Lige nu klares det ved et kald på visskjul(), der skifter displayværdien
mellem none og block.

Menuen vil blive for lang hvis den er klappet ud som standard, så jeg
ser 2 muligheder:
Enten det I ser her, eller også den dropdownmenu som jeg bruger på et
andet site, og som jeg har "hugget" fra http://webdesign101.dk.

Men på detn anden side er der ikke så mange underpunkter som der er her,
så der er behovet for at den kan forblive foldet ud, selv om musen ikke
holdes henover, ikke det samme (som jeg ser det).

Omvendt er den nuværende læsning heller ikke optimal, hvis siden besøges
af en der har slået javascript fra. I hvert fald ikke for noget så
centralt som selve navigationen.

--
Philip - http://chartbase.dk

Stig Johansen (30-08-2009)
Kommentar
Fra : Stig Johansen


Dato : 30-08-09 12:36

Philip Nunnegaard wrote:

> Omvendt er den nuværende læsning heller ikke optimal, hvis siden besøges
> af en der har slået javascript fra. I hvert fald ikke for noget så
> centralt som selve navigationen.

Menuen virker slet ikke uden javascript.

Det er nok en trade-off situation.
På den ene side, så understøtter alle browsere javascript, så det er
principielt ikke en hindring.

På den anden side så er der et 'overforbrug' af javascript på 'inderneddet',
så nogle (herunder undertegnede) generelt har slået det fra.

Jeg tænker ikke kun på alle de der 200KB+ frameworks, og Reklamer, men også
sikkerhedsmæssigt.


Skal man have fred og ro i sin surfing, så er det bedste at slå javascript
fra.

For ikke så lang tid siden havde Version2 en artikel, hvor Google udtaler at
javascript er internettets bremseklods.
(Har ikke lige linket ved hånden).

Men under alle omstændigheder tror jeg det er en god idé at bevare
_funktionaliteten_ uagtet man ikke kører med javascript.

--
Med venlig hilsen
Stig Johansen

Rune Jensen (30-08-2009)
Kommentar
Fra : Rune Jensen


Dato : 30-08-09 12:45

Stig Johansen skrev:

> Men under alle omstændigheder tror jeg det er en god idé at bevare
> _funktionaliteten_ uagtet man ikke kører med javascript.

Jeg var ret overrasket over specifikationerne på denne:
http://onlinetools.org/tools/dom-tree-menu-puredom/#

Det lød næsten for godt til at være sandt (også keyboard kontrol)

Men... damn, om jeg kan få det til at virke! Men det lader til, efter
kommentarerne at dømme, at det gør det?? Have I missed something?


MVH
Rune Jensen

Philip Nunnegaard (30-08-2009)
Kommentar
Fra : Philip Nunnegaard


Dato : 30-08-09 12:59

Rune Jensen skrev:

> Jeg var ret overrasket over specifikationerne på denne:
> http://onlinetools.org/tools/dom-tree-menu-puredom/#

Det ligner ellers lige præcis det jeg skal bruge.
Nu har jeg i hvert fald downloadet scriptet.


--
Philip - http://chartbase.dk

Stig Johansen (30-08-2009)
Kommentar
Fra : Stig Johansen


Dato : 30-08-09 15:43

Rune Jensen wrote:

> Men... damn, om jeg kan få det til at virke! Men det lader til, efter
> kommentarerne at dømme, at det gør det?? Have I missed something?

Det ved jeg ikke..

Her virker det hverken i Konqueror eller FF 3.5. - hmm, hvor er det vi er
kommet til - jo - efter besøg på den anden maskine, så er det 3.5.2.

Hvad var det scriptet skulle kunne?

(Jeg har kun tjekket 'demoerne' og ikke downloadet noget).

--
Med venlig hilsen
Stig Johansen

Philip Nunnegaard (30-08-2009)
Kommentar
Fra : Philip Nunnegaard


Dato : 30-08-09 16:08

Stig Johansen skrev:

> Hvad var det scriptet skulle kunne?
>
> (Jeg har kun tjekket 'demoerne' og ikke downloadet noget).

Klik på "pilene". Så folder det sig ud.

Som jeg ser det, vil folk der ikke har slået javascript til, blive ledt
over på den side som står i linkets egentlige href. Dermed vil de ikke
opleve nogle negative følger af brugen af javascript. Det er som jeg har
forstået det, hele humlen ved Unobtrusive Javascript.

--
Philip - http://chartbase.dk

Stig Johansen (31-08-2009)
Kommentar
Fra : Stig Johansen


Dato : 31-08-09 05:48

Philip Nunnegaard wrote:

> Klik på "pilene". Så folder det sig ud.

Det er også 'pilene' ovre i højre side jeg klikker på.
Men der sker ingenting, hverken i min Konqueror,FF3.5.2 eller IE6.

--
Med venlig hilsen
Stig Johansen

Philip Nunnegaard (30-08-2009)
Kommentar
Fra : Philip Nunnegaard


Dato : 30-08-09 12:55

Stig Johansen skrev:

> Menuen virker slet ikke uden javascript.

Præcis derfor jeg tænkte på unobtrusive javascript.
Min tanke var at folk der ikke har slået javascript til, kommer frem til
en side der viser det ønskede.

Men overvejer stadig om ikke jeg bare skal lave en simpel css-løsning i
stedet.

> For ikke så lang tid siden havde Version2 en artikel, hvor Google udtaler at
> javascript er internettets bremseklods.
> (Har ikke lige linket ved hånden).

http://www.version2.dk/artikel/10924-google-javascripts-er-internettets-bremseklods

Jævnfør artiklen: Er en stor del af problemet lige her ikke at mange
hjemmesider henter en masse overflødige scripts ind på alle sider og
ikke kun på de sider, hvor de ikke er overflødige?

--
Philip - http://chartbase.dk

Stig Johansen (30-08-2009)
Kommentar
Fra : Stig Johansen


Dato : 30-08-09 13:10

Philip Nunnegaard wrote:

> Jævnfør artiklen: Er en stor del af problemet lige her ikke at mange
> hjemmesider henter en masse overflødige scripts ind på alle sider og
> ikke kun på de sider, hvor de ikke er overflødige?

Jo, i store træk.
Jeg er ikke særlig god til at gemme links, så derfor havde jeg ikke nogle.

Men da artiklen var aktuel, var der en masse brugbare links (eller også
fandt jeg dem), som omhandlede en masse problemstillinger.
(Hmm. jo, det er clientside, så jeg fortsætter.. dog er det nok ikke dansk -
sorry)

Herunder brug af closures vs. GC problemer (aka memory leaks)
Concatenation af strings vs opbygning i arrays med efterfølgende join,
og ikke mindst load af unødigt javascript, som ikke skal bruges.

Her er der ikke kun tale om selve load-tiden, men at disse 'ting' skal
gennempule DOM'en og attache events på alt muligt osv, inden siden er
brugbar.

Wikipedia f.eks. synes jeg skal have eventhandelser på alt muligt keyboard
og mouse events, før jeg må læse en artikel.

Det har medført, at jeg kører uden javascript på wikipedia, da det tager 4-5
sek. at pule DOM'en (på min maskine).

Og nej, jeg har ikke til hensigt at investere i nyere maskiner blot for at
læse en artikel ;)

--
Med venlig hilsen
Stig Johansen

Birger Sørensen (30-08-2009)
Kommentar
Fra : Birger Sørensen


Dato : 30-08-09 13:27

Efter mange tanker skrev Philip Nunnegaard:
> Rune Jensen skrev:
>
>> Bare af nysgerrighed - hvad skulle det bruges til, det script?
>
> Vi kan vel lige så godt tage den nu, inden jeg kommer for godt igang.
> Det drejer sig om menuen på denne side:
>
> http://chartbase.dk/usenet
>
> Der er 9 hovedmenupunkter plus en masse undermenupunkter.
> Tanken er at de er klappet sammen, når man kommer ind på siden, men at man
> ved et klik på et hovedpunkt for underpunkterne frem.
>
> Lige nu klares det ved et kald på visskjul(), der skifter displayværdien
> mellem none og block.
>
> Menuen vil blive for lang hvis den er klappet ud som standard, så jeg ser 2
> muligheder:
> Enten det I ser her, eller også den dropdownmenu som jeg bruger på et andet
> site, og som jeg har "hugget" fra http://webdesign101.dk.
>
> Men på detn anden side er der ikke så mange underpunkter som der er her, så
> der er behovet for at den kan forblive foldet ud, selv om musen ikke holdes
> henover, ikke det samme (som jeg ser det).
>
> Omvendt er den nuværende læsning heller ikke optimal, hvis siden besøges af
> en der har slået javascript fra. I hvert fald ikke for noget så centralt som
> selve navigationen.

Det er lidt skidt med javascript menuer.
Ikke kun fordi den besøgende kan slå funktionaliteten fra - også for
brugervenighed generelt (tekst-browsere, mobiler, what have you these
days).
Med :hover (og andre pseudoklasser), kan det faktisk lade sig gøre at
få samme funktionalitet - eller i hvert fald tæt på.

http://lystruplund.dk - også med venligt lån fra webdesign101 - har 53
menupunkter, foldeud i 3 niveauer, der selv lukker, når musen fjernes.
Og det er ren CSS. Og den er ikke brugbar i IE6 - vist mest fordi jeg
ikke goder rode med forældede browsere..

På bbsorensen.dk, en anden måde at gøre tingene på.
Undermenuerne findes på deres egen side. I stedet for at have dem poppe
op eller ned eller folde ud den ene eller den anden vej, åbner et klik
på et hoved-menupunkt - vandret i toppen - en side, der indeholder
underpunkterne, som en selvstændig menu - lodret i siden. Man har altså
stadig det samme som en foldeud, der beholder den foldede ud menu,
indtil der vælges et andet punkt i hovedmenuen.
(Og man kan selvfølgelig gøre det omvendt - have hovedmenuen lodret og
undermenuer vandret, hvis det passer bedre til det øvrige design, eller
man bare bedre kan lide det sådan ^^ , eller have dem alle lodret -
eller vandret, eller...)
Er der underpunkter til underpunkterne, gøres det samme - der åbnes en
side, der har undermenuen som menu - uden at de andre menuer fjernes.
Prøv f.eks. at gå ind under Billeder - Ferie 2006 - der kan du vælge en
stribe underpunkter (og hvis du vælge Huset, skulle du kunne finde
noget du kender, Philip), og igen - er der underpunkter, vises de som
selvstændige menuer, på den side der åbnes, når punktet vælges.
Den er så helt i js. Bl.a. fordi hele sitet styres af AJAX, og det
under alle omstændigheder er umuligt at se den uden js. (Og den
startede som et forsøg - er det virkelig nødvendigt at hente alting
igen igen, hver gang der skal vises en anden tekst? Svar: nej det er
det ikke, men det koster så på andre punkter - men den er blevet til
vores eget billedarkiv, og det bliver lidt svært at komme af med den
igen, eller få den redesignet til "det almindelige". Har egentlig også
mere lyst til at fylde de manglende tekster ind - baare ikke tid lige
nu...).
Men der er vist ingen grund til at noget tilsvarende ikke skulle kunne
gøres med CSS, og almindelige link eller lister, som er det anbefalede
"brugervenlige".

Jeg plaprer. Undskyld.
Det var egentlig bare for at illustrere, at man har en menu, for at
gøre det nemt for den besøgende at navigere sitet.
Der er ingen der siger at alting skal være indenfor rækkevidde hele
tiden - det skal bare være nemt at finde rundt i, og derfor er det
smart at koble relaterede emner sammen.
Og det kan altså lade sig gøre, uden at skulle konstruere et
"menuelement", der kan det hele og lidt til. Det er stadig indholdet
der er det vigtigste. Menuens opgave er at gøre det nemt for de
besøgende at finde det de skal bruge. Og det kan gøres på mange måder.
Det er bestemt tilladt at tænke kreativt - man behøver ikke "låne" af
andre, og resultatet skal ikke nødvendigvis ligne noget andet...
B-)

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Rune Jensen (30-08-2009)
Kommentar
Fra : Rune Jensen


Dato : 30-08-09 13:49

Birger Sørensen skrev:

> Men der er vist ingen grund til at noget tilsvarende ikke skulle kunne
> gøres med CSS, og almindelige link eller lister, som er det anbefalede
> "brugervenlige".

Problemet i øjeblikket er, at standarderne halter lidt. De er bagefter i
tid i forhold til folks reelle behov, ufærdige, og visse steder ikke
dokumenteret godt nok. Nogle roder med CSS3 og HTML5, som begge giver
enorme nye muligheder, og det giver vel også flere muligheder til JS..
men vi er lidt stucked i den "gammeldags" måde at kode på.. det virker j
ikke endnu alt det nye.. og det varer minimum 4-5 år, før der sker mere
(før standarderne er færdige, alle har det implementeret og opgraderet
deres browsere).

Jeg fandt lige hurtigt:
http://www.ibm.com/developerworks/library/x-html5/

Så vidt jeg er orienteret, kan HTML5 godt sendes som XML. Og da det er
meget mere semantisk end forrige standarder, vil det vel nærme sig XML
mere, end selv XHTML.

PS: Det er lang tid siden, men jeg læste et sted, at der er tænkt AJAX
ind i standarderne mht. brugervenlighed (eller nærmere, måske det med
ikke at skulle hente siden hver gang). Problemet er bare stadig, man
ikke ved, hvad som virker og hvad ikke. (Og jeg har ingen anelse om
ellers, hvordan det så virker)


MVH
Rune Jensen

Philip Nunnegaard (30-08-2009)
Kommentar
Fra : Philip Nunnegaard


Dato : 30-08-09 14:35

Birger Sørensen skrev:

> Med :hover (og andre pseudoklasser), kan det faktisk lade sig gøre at få
> samme funktionalitet - eller i hvert fald tæt på.

Min tanke var nu at menupunkterne skulle forblive klappet ud, når musen
forlod det.

> http://lystruplund.dk - også med venligt lån fra webdesign101 - har 53
> menupunkter, foldeud i 3 niveauer, der selv lukker, når musen fjernes.
> Og det er ren CSS. Og den er ikke brugbar i IE6 - vist mest fordi jeg
> ikke goder rode med forældede browsere..

Men ellers har jeg samme rene css-løsning på www.hitsurf.dk.
Eller næsten rene. For der kaldes en .htc-fil som gør at den også virker
i IE6.
Siden er lavet for 2 år siden, hvor IE6 stadig var den mest udbredte
IE-version. Havde jeg lavet det i dag, havde jeg nok ikke gidet bekymre
mig om det, og da slet ikke når fallback-muligheden trods alt er der.
(Og jeg havde heller ikke lavet fastlåst bredde, hvis jeg skulle lave
det samme i dag).

Som fallback kommer underpunkterne så også frem på undersiden, hvis man
klikker på hovedpunktet.

> På bbsorensen.dk, en anden måde at gøre tingene på.
> Undermenuerne findes på deres egen side. I stedet for at have dem poppe
> op eller ned eller folde ud den ene eller den anden vej, åbner et klik
> på et hoved-menupunkt - vandret i toppen - en side, der indeholder
> underpunkterne, som en selvstændig menu - lodret i siden.

Det ligner igen den fallback, jeg har på Hitsurf.

Jeg tager det som udtryk for at jeg ikke tænkte helt galt i sin tid, så
jeg tror egentlig bare at jeg holder fast i det.

Det var meget godt at få drøftet, inden jeg kom for langt med det.

--
Philip - http://chartbase.dk

Stig Johansen (30-08-2009)
Kommentar
Fra : Stig Johansen


Dato : 30-08-09 15:43

"Philip Nunnegaard" <nunnenospam@hitsurf.dk> wrote in message
news:4a9a7fdc$0$56775$edfadb0f@dtext02.news.tele.dk...
> Men ellers har jeg samme rene css-løsning på www.hitsurf.dk.

Nu er vi i .clientside gruppen, og du har selv eksponeret din URL - så...

> Eller næsten rene. For der kaldes en .htc-fil som gør at den også virker
> i IE6.

Den fejler et par steder i IE6.
Først fordi jeg har lavet en URL blocking på chart.dk, det være hvad det
vil, men senere fejler den også her:
.....
<script type='text/javascript'>
track_visitor(39489, '');
.....

Ikke alle synes det er en god idé at aflevere data til 'trackere' og
'countere' (aka 3. mand).

det burde være muligt at lave en 'if', der tjekker om objektet/funktionen
eksisterer...

--
Med venlig hilsen/Best regards
Stig Johansen




Philip Nunnegaard (30-08-2009)
Kommentar
Fra : Philip Nunnegaard


Dato : 30-08-09 15:45

Stig Johansen skrev:

> det burde være muligt at lave en 'if', der tjekker om objektet/funktionen
> eksisterer...

Eller simpelt hen fjerne det helt. :)


--
Philip - http://chartbase.dk

Peter (28-08-2009)
Kommentar
Fra : Peter


Dato : 28-08-09 23:08

> Er ikke afprøvet:
>
> <input type="text" (...indsæt selv parametre/attributter...) value="Skriv
> her" onfocus="this.value='';" />
>
> --
> Philip - http://chartbase.dk


Hej Philip!

Scriptet er nu "afprøvet" og det virker. Mange tak for hjælpen !!!

hilsen
Peter



Jakob Bohm (29-08-2009)
Kommentar
Fra : Jakob Bohm


Dato : 29-08-09 20:58

Peter wrote:
>> Er ikke afprøvet:
>>
>> <input type="text" (...indsæt selv parametre/attributter...) value="Skriv
>> her" onfocus="this.value='';" />
>>
>> --
>> Philip - http://chartbase.dk
>
>
> Hej Philip!
>
> Scriptet er nu "afprøvet" og det virker. Mange tak for hjælpen !!!
>
> hilsen
> Peter
>
>
NEJ, scriptet virker ikke! Se Birgers post fra kl. 16:56 for hvad der
er galt og hvad løsningen er.

Peter (29-08-2009)
Kommentar
Fra : Peter


Dato : 29-08-09 21:30

Hej Jacob!

Sådan noget vrøvl. Du skal da ihvertfald ikke kommer her og påstå at min
kommentar ikke passer.
Scriptet er "testet" på: IE 8, Firefox, Google Chrome + SeaMonkey. Hvilke
browsere har du testet scriptet med?

Peter

>> Scriptet er nu "afprøvet" og det virker. Mange tak for hjælpen !!!
>>
>> hilsen
>> Peter
>>
>>
> NEJ, scriptet virker ikke! Se Birgers post fra kl. 16:56 for hvad der
> er galt og hvad løsningen er.



Jakob Bohm (29-08-2009)
Kommentar
Fra : Jakob Bohm


Dato : 29-08-09 22:41

Peter wrote:
> Hej Jacob!
>
> Sådan noget vrøvl. Du skal da ihvertfald ikke kommer her og påstå at min
> kommentar ikke passer.
> Scriptet er "testet" på: IE 8, Firefox, Google Chrome + SeaMonkey. Hvilke
> browsere har du testet scriptet med?
>
> Peter
>
>>> Scriptet er nu "afprøvet" og det virker. Mange tak for hjælpen !!!
>>>
>>> hilsen
>>> Peter
>>>
>>>
>> NEJ, scriptet virker ikke! Se Birgers post fra kl. 16:56 for hvad der
>> er galt og hvad løsningen er.
>
>
Læs den post jeg henviste til. Dette script vil slette feltet HVER gang
man klikker på det, uanset om det der står i feltet er startværdi eller
brugerens forrige indtastning. Hvis du kun tester den første situation
(på uendeligt mange browsere) vil du aldrig opdage fejlen!

Peter (29-08-2009)
Kommentar
Fra : Peter


Dato : 29-08-09 23:03

Hej Jacob!

>>>> Scriptet er nu "afprøvet" og det virker. Mange tak for hjælpen !!!
>>>>
>>>> hilsen
>>>> Peter
>>>>
>>> NEJ, scriptet virker ikke! Se Birgers post fra kl. 16:56 for hvad der
>>> er galt og hvad løsningen er.
>>
> Læs den post jeg henviste til. Dette script vil slette feltet HVER gang
> man klikker på det, uanset om det der står i feltet er startværdi eller
> brugerens forrige indtastning. Hvis du kun tester den første situation
> (på uendeligt mange browsere) vil du aldrig opdage fejlen!

Vi taler om 2 forskellige ting. Du læser åbenbart ikke posten fra trådens
start. Mine "behov" i forespørgelsen pr.28/8 kl. 21.28 er løst af Philip kl.
23.03 - Dermed er "spørgerens" problem løst m.h.t. "om det virker". At du
(og andre) "går videre" og forædler scriptet til perfektion er da ligesom
underordnet og derefter begynder at tale om "at jeg aldrig vil opdage
fejlen". Stadigvæk ud fra mine ønsker fungerer scriptet som Philip har lavet
og alle mulige "langhårede" begrundelser kan da ikke underkende og
bortforklare at scriptet virker.

Peter



Rune Jensen (30-08-2009)
Kommentar
Fra : Rune Jensen


Dato : 30-08-09 07:50

Peter skrev:

> [...] og derefter begynder at tale om "at jeg aldrig vil opdage
> fejlen". Stadigvæk ud fra mine ønsker fungerer scriptet som Philip har lavet
> og alle mulige "langhårede" begrundelser kan da ikke underkende og
> bortforklare at scriptet virker.

Du er ikke fair overfor Jacob, han præver at hjælpe dig. Han henviser
til en situation, som kan være et problem for brugeren, og i værste fald
et kæmpe irritationsmoment. Det er helt validt hvad både han og Birger
skriver, selv om Philips script bestemt er fint.

Det er iøvrigt ikke dine ønsker og behov, det handler om, men brugerens,
hvis du vil have en side, folk føler sig tilpas med. Den havde jeg også
svært ved at bide i mig i starten. Derfor skal man skelne imellem, hvad
der teknisk virker, og hvad der virker for brugeren. Jeg kan nævne mange
ting, der er teknisk mulige, ikke alle er smarte (eller brugervenlige,
hvilket er hvad det handler om her).

Nu har du i hvert fald fået samme svar flere steder fra, så kan du jo
selv bestemme.


MVH
Rune Jensen

Stig Johansen (30-08-2009)
Kommentar
Fra : Stig Johansen


Dato : 30-08-09 09:42

Rune Jensen wrote:

> Du er ikke fair overfor Jacob,

Jeg vil ikke blande mig, men Jacob kunne godt have formuleret sit indlæg
anderledes.

Måske skulle han have brugt et andet ordvalg end 'det virker ikke'.

Jo, scriptet *virker*, men der var en *uhensigtsmæssighed*, som Peter
sikkert ikke var opmærksom på.

Jeg ville nok have skrevet det lidt anderledes, a lá:
"Jo, det virker, men vær opmæksom på denne uhensigtsmæssighed osv.."
I stedet for kategorisk at udtale "det virker ikke"...
og derefter kommet med et forslag til forbedring.

--
Med venlig hilsen
Stig Johansen

Rune Jensen (30-08-2009)
Kommentar
Fra : Rune Jensen


Dato : 30-08-09 11:37

Stig Johansen skrev:

> Jeg ville nok have skrevet det lidt anderledes, a lá:
> "Jo, det virker, men vær opmæksom på denne uhensigtsmæssighed osv.."
> I stedet for kategorisk at udtale "det virker ikke"...
> og derefter kommet med et forslag til forbedring.

Det er klart nok, men jeg opfattede det faktisk som et forsøg på at
hjælpe, for er der noget, som irriterer brugerne, så er det, hvis en
side "modarbejder" én.. selv om ja, det kunne være formuleret bedre. Men
der var jo ingen kritik i det.. sådan lød det ikke for mig. Men dit
ordvalg ville være bedre.. joh.


MVH
Rune Jensen

Lasse Reichstein Nie~ (30-08-2009)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 30-08-09 03:03

Philip Nunnegaard <nunnenospam@hitsurf.dk> writes:

> Philip Nunnegaard skrev:
>
>> Er ikke afprøvet:
>> <input type="text" (...indsæt selv parametre/attributter...)
>> value="Skriv her" onfocus="this.value='';" />
>
> Jeg har nu afprøvet det, og det virker i alle browsere som jeg har ved
> hånden.
>
> Men måske Birger eller en anden javascripthaj kan uddybe, hvis dette
> "this.value" ikke er korrekt javascript, og man evt. *skal* bruge
> document.getElementById.

Der er ikke noget galt i at bruge "this" inde i en "intrinsic event
handler". Det virker i alle browsere, og bliver ved med det længe
endnu (fordi der er så mange der bruger det allerede :).

Det er dog ikke specificeret i hverken HTML eller DOM standarderne
hvordan HTML og script bindes sammen. Det kommer først i HTML 5,
som ikke er færdig endnu. Der bliver det officielt at "this" skal
pege på det element som handleren er sat på.

Og som løsning på det oprindelige problem vil jeg foreslå:

<script>
function resetOnFocus(element) {
if (element.value == element.defaultValue) {
element.value = "";
}
element.style.color = "black";
}
</script>
<input type="text" style="color:gray" value="- skriv her -"
onfocus="resetOnFocus(this);">


/L
--
Lasse Reichstein Holst Nielsen
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Leif Neland (01-09-2009)
Kommentar
Fra : Leif Neland


Dato : 01-09-09 18:57

Philip Nunnegaard skrev:
> Peter skrev:
>
>> I min formular har jeg et felt med "startværdi" altså et tekstfelt der
>> allerede har en tekst (et spørgsmål) stående. Det virker ikke smart,
>> da den
>> "besøgende" på siden, først skal sætte curseren i feltet og dernæst
>> slette
>> den indsatte tekst med "backspace" (slettetasten). Kan det ikke gøres
>> ved at
>> feltet bliver "ryddet" i samme øjeblik man placerer musecurseren i
>> feltet ?
>
> Er ikke afprøvet:
>
> <input type="text" (...indsæt selv parametre/attributter...)
> value="Skriv her" onfocus="this.value='';" />
>
>
Det er nok bedre med
onfocus="if (this.value=='Skriv her') {this.value=''}"

(Heller ikke afprøvet)

Ellers bliver det, man har skrevet, slettet, når man flytter focus væk
og tilbage til feltet.

Leif

Philip Nunnegaard (01-09-2009)
Kommentar
Fra : Philip Nunnegaard


Dato : 01-09-09 18:59

Leif Neland skrev:

> Det er nok bedre med
> onfocus="if (this.value=='Skriv her') {this.value=''}"
>
> (Heller ikke afprøvet)
>
> Ellers bliver det, man har skrevet, slettet, når man flytter focus væk
> og tilbage til feltet.

Ja, det mindede Birger mig også lige om, så jeg lavde det til noget der
minder om din.

--
Philip - http://chartbase.dk

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste