/ 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
Lave link udfra dato
Fra : Ebbe Bæk


Dato : 04-03-10 20:30

Jeg har brug for at lave et link på en hjemmeside, som bestemmes
ud fra syntax'en: http://mydomain.dk/2010/dd-mm-year.aspx

Den kaldte side skal være den førstkommende søndag, så der skal
altså hentes en dato, som bagefter kan vises via linket "Se
indhold næstkommende søndag"

Kan det laves med et Java Script?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Martin Larsen (04-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 04-03-10 20:50

Ebbe Bæk wrote:

> Kan det laves med et Java Script?

Ja, fx:

dato = new Date()

dageTilSoendag = 7-dato.getDay();
dato.setDate(dato.getDate()+dageTilSoendag);

d = dato.getDate();
m = dato.getMonth()+1;
y = dato.getFullYear();

soendagsUrl = d + "-" + m + "-" + y + ".aspx";

Du skriver ikke helt præcist hvad der skal ske hvis koden udføres på en
søndag. Viste eksempel returnerer da næste søndag.

Martin

Ebbe Bæk (05-03-2010)
Kommentar
Fra : Ebbe Bæk


Dato : 05-03-10 23:11

> Du skriver ikke helt præcist hvad der skal ske hvis koden udføres på en
> søndag. Viste eksempel returnerer da næste søndag.
>
> Martin

Hvis koden skal udføres på en søndag, skal den pågældende søndag
returneres.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Ebbe Bæk (05-03-2010)
Kommentar
Fra : Ebbe Bæk


Dato : 05-03-10 23:51

> soendagsUrl = d + "-" + m + "-" + y + ".aspx";
>
Jeg er MEGET nybegynder, men er det ikke rigtigt at scriptet skrives i
<HEAD> sektionen og afviklingen af scriptet i <BODY>?

Hvordan skal afviklingen af scriptet kodes, hvis syntaxen er:
http://mydomain.dk/2010/dd-mm-year.aspx ?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Martin Larsen (06-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 06-03-10 00:39

Ebbe Bæk wrote:

> Jeg er MEGET nybegynder, men er det ikke rigtigt at scriptet skrives i
> <HEAD> sektionen og afviklingen af scriptet i<BODY>?

Jeg ville lave en funktion i <HEAD> som fx hedder soendagsUrl(id) hvor
id henviser til den <A> som skal have linket.

Så ville jeg kalde funktionen i <BODY> et sted efter den pågældende <A>
er oprettet da funktionen ellers ikke ville kun finde den.

Jeg skal forsøge at svare på de andre ting senere, er på vej i seng nu :)

Martin

Birger Sørensen (06-03-2010)
Kommentar
Fra : Birger Sørensen


Dato : 06-03-10 01:13

Martin Larsen sendte dette med sin computer:
> Ebbe Bæk wrote:
>
>> Jeg er MEGET nybegynder, men er det ikke rigtigt at scriptet skrives i
>> <HEAD> sektionen og afviklingen af scriptet i<BODY>?
>
> Jeg ville lave en funktion i <HEAD> som fx hedder soendagsUrl(id) hvor id
> henviser til den <A> som skal have linket.
>
> Så ville jeg kalde funktionen i <BODY> et sted efter den pågældende <A> er
> oprettet da funktionen ellers ikke ville kun finde den.
>
> Jeg skal forsøge at svare på de andre ting senere, er på vej i seng nu :)
>
> Martin

Nu er jeg ikke til ASP...
men funktionen kunne ende med at sætte
document.getElementById( 'sundaylink').href = d + "-" + m + "-" + y +
".aspx";

og i HTML'en
<a id="sundaylink" href="#">Sødagslink</a>
Kommer jo lidt an på hvordan du vil bruge det - og det skal måske i
onload på body...

Birger

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



Chano Andersen (06-03-2010)
Kommentar
Fra : Chano Andersen


Dato : 06-03-10 01:32

Den 06-03-2010 01:13, Birger Sørensen skrev:
> og i HTML'en
> <a id="sundaylink" href="#">Sødagslink</a>
> Kommer jo lidt an på hvordan du vil bruge det - og det skal måske i
> onload på body...

Det vil ikke være et godt sted at placere den, et bedre sted ville være
lige efter objektet er oprettet. Hvis du placere den i "onload" kan du
nemt risikere at den ikke kan finde objektet.

- Chano Andersen

Birger Sørensen (06-03-2010)
Kommentar
Fra : Birger Sørensen


Dato : 06-03-10 01:54

Chano Andersen forklarede:
> Den 06-03-2010 01:13, Birger Sørensen skrev:
>> og i HTML'en
>> <a id="sundaylink" href="#">Sødagslink</a>
>> Kommer jo lidt an på hvordan du vil bruge det - og det skal måske i
>> onload på body...
>
> Det vil ikke være et godt sted at placere den, et bedre sted ville være lige
> efter objektet er oprettet. Hvis du placere den i "onload" kan du nemt
> risikere at den ikke kan finde objektet.
>
> - Chano Andersen

<script ...>
function MakeSundayLink() { ....}

window.onload = MakeSundayLink;
</script>

body.onload, plejede at fungere - derfor skrev jeg body (det er
sent...). Men man har fjernet onload fra de almindelige elementer, og
den findes nu kun på window, så det bør da vist fungere. window.onload
kaldes efter document er loaded, så hvis anchoret befinder sig i body,
bør det være fint nok.

https://developer.mozilla.org/en/DOM/window.onload

Birger

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



Chano Andersen (06-03-2010)
Kommentar
Fra : Chano Andersen


Dato : 06-03-10 13:12

Den 06-03-2010 01:53, Birger Sørensen skrev:
> den findes nu kun på window, så det bør da vist fungere. window.onload
> kaldes efter document er loaded, så hvis anchoret befinder sig i body,
> bør det være fint nok.

Hvis vi samtidig antager, at der IKKE findes dårlige javascript
implementationer, så ja. ;)

- Chano Andersen

Birger Sørensen (06-03-2010)
Kommentar
Fra : Birger Sørensen


Dato : 06-03-10 14:06

Chano Andersen skrev:
> Den 06-03-2010 01:53, Birger Sørensen skrev:
>> den findes nu kun på window, så det bør da vist fungere. window.onload
>> kaldes efter document er loaded, så hvis anchoret befinder sig i body,
>> bør det være fint nok.
>
> Hvis vi samtidig antager, at der IKKE findes dårlige javascript
> implementationer, så ja. ;)
>
> - Chano Andersen

onload er har ikke noget med javascript at gøre - det er en DOM event.
Man kan tildele den en javascript funktion - hvilket er noget andet, og
sikkert godt kan ødelægges af en js-engine. Men det er IMHO, lidt langt
ude...

Birger

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



Chano Andersen (07-03-2010)
Kommentar
Fra : Chano Andersen


Dato : 07-03-10 14:52

Den 06-03-2010 14:05, Birger Sørensen skrev:
> onload er har ikke noget med javascript at gøre - det er en DOM event.
> Man kan tildele den en javascript funktion - hvilket er noget andet, og
> sikkert godt kan ødelægges af en js-engine. Men det er IMHO, lidt langt
> ude...

Jaja.. Så en dom event, men man kan stadig have en dårlig implementation
af denne event, og dermed opleve at den udføres for tidligt. Langt ude,
måske, men det er der så meget der er, og noget af det er faktisk
virkelighed, selvom det virker langt ud.

- Chano Andersen

Stig Johansen (07-03-2010)
Kommentar
Fra : Stig Johansen


Dato : 07-03-10 17:54

Chano Andersen wrote:

> Jaja.. Så en dom event, men man kan stadig have en dårlig implementation
> af denne event, og dermed opleve at den udføres for tidligt. Langt ude,
> måske, men det er der så meget der er, og noget af det er faktisk
> virkelighed, selvom det virker langt ud.

Har du været ude for at en (korrekt kodet) onload udføres for tidligt?

Selv i min gamle Konqueror, og ja - selv i IE5[1], virker det da fint, så
din oplevelse må da være møj gammel ?

[1] Ikke at jeg bruger IE5, men har en wmware med en vanilla win2K+IE5, jeg
kan starte op for sjov.

--
Med venlig hilsen
Stig Johansen

Chano Andersen (10-03-2010)
Kommentar
Fra : Chano Andersen


Dato : 10-03-10 00:00

Den 07-03-2010 17:53, Stig Johansen skrev:
> Har du været ude for at en (korrekt kodet) onload udføres for tidligt?

Jeg husker ikke lige den præcise årsag, men ja, har været ude for
situationer hvor kode blev kørt tidligere end forventet.

> [1] Ikke at jeg bruger IE5, men har en wmware med en vanilla win2K+IE5, jeg
> kan starte op for sjov.

VMWare er en fantastisk opfindelse. :)

- Chano Andersen

Martin Larsen (08-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 08-03-10 09:58

Birger Sørensen wrote:

> onload er har ikke noget med javascript at gøre - det er en DOM event.

Men DOM events er stadig obtrusive, se fx den Wikipedia-artikel du
linkede til:

http://en.wikipedia.org/wiki/Unobtrusive_JavaScript#Separation_of_behavior_from_markup

Derfor bruger du ikke engang selv unobtrusive JS selv om du advokerer så
meget for det. Jeg refererer til hjemmesiderne i din tagline.

Unobtrusive JS handler om total adskillelse mellem design og
funktionalitet. Hvis du får html-koderne fra designerne, skal enten du
eller designerne selv indsætte alle disse DOM events. Det giver noget
værre vedligeholdelsesrod for større projekter.

Det kan man helt undgå ved at lave en dynamisk binding af disse events
som foreslået i artiklen.

Martin



Martin Larsen (06-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 06-03-10 09:16

Chano Andersen wrote:

> et bedre sted ville være lige efter objektet er oprettet

Det er også sådan jeg ville gøre det.

Hilsen
Martin

Martin Larsen (06-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 06-03-10 09:34

Ebbe Bæk wrote:

> Hvordan skal afviklingen af scriptet kodes, hvis syntaxen er:
> http://mydomain.dk/2010/dd-mm-year.aspx

Som Birger foreslår, sættes href med en getElementById. Jeg har dog her
lavet en funktion for overskuelighedens skyld, men det er ikke nødvendigt.

I dette fulde eksempel returnerer den dags dato hvis det er en søndag,

<html>
<head>
<script type="text/javascript">
function setSoensdagsLink(id) {
dato = new Date()

dageTilSoendag = 7-dato.getDay();
dato.setDate(dato.getDate()+dageTilSoendag);

d = dato.getDate();
m = dato.getMonth()+1;
y = dato.getFullYear();

document.getElementById(id).href = "http://mydomain.dk/2010/" +
d + "-" + m + "-" + y + ".aspx";
}
</script>

</head>
<body>
<a id="soendagslink">Søndagslink</a>
<script type="text/javascript">
setSoensdagsLink('soendagslink');
</script>
</body>
</html>


Hilsen
Martin

Martin Larsen (06-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 06-03-10 09:49

Martin Larsen wrote:

> I dette fulde eksempel returnerer den dags dato hvis det er en søndag,

Tja, hvis jeg altså havde husket at indsætte den opdaterede kode!

Erstat

dageTilSoendag = 7-dato.getDay();

med

dageTilSoendag = (7-dato.getDay()) % 7;


% betyder modulus, altså rest ved division med (her) 7.

Hilsen
Martin

Ebbe Bæk (06-03-2010)
Kommentar
Fra : Ebbe Bæk


Dato : 06-03-10 20:52

> % betyder modulus, altså rest ved division med (her) 7.
>
> Hilsen
> Martin

Mange tak for din hjælp, Martin!
Jeg har nu kun ét problem tilbage:
De omtalte aspx-sider er af formatet dd-mm-year, dvs. at for datoen 7.
marts 2010 hedder dokumentet 07-03-2010.aspx - og din programmering kalder
datoen 7-3-2010 - er det muligt at få frem via en anden getdate?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Martin Larsen (06-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 06-03-10 21:08

Ebbe Bæk wrote:

> Mange tak for din hjælp, Martin!
> Jeg har nu kun ét problem tilbage:
> De omtalte aspx-sider er af formatet dd-mm-year, dvs. at for datoen 7.
> marts 2010 hedder dokumentet 07-03-2010.aspx - og din programmering kalder
> datoen 7-3-2010 - er det muligt at få frem via en anden getdate?

Jeg tør jo snart ikke hjælpe mere af frygt for at få på puklen af folk
for hvem form er vigtigere end indhold, og som mener det er syndigt at
komme med små hurtige eksempler som skal hjælpe folk på vej.

Nå, men ideen er at tilføje et ekstra nul hvis dato eller måned er på ét
ciffer, altså <=9,

så:

d = dato.getDate();
if(d<=9) {
d = "0" + d;
}

m = dato.getMonth()+1;
if(m<=9) {
m = "0" + m;
}

skulle gøre det for dig.


Hilsen
Martin

Birger Sørensen (07-03-2010)
Kommentar
Fra : Birger Sørensen


Dato : 07-03-10 00:20

Martin Larsen udtrykte præcist:
> Ebbe Bæk wrote:
>
>> Mange tak for din hjælp, Martin!
>> Jeg har nu kun ét problem tilbage:
>> De omtalte aspx-sider er af formatet dd-mm-year, dvs. at for datoen 7.
>> marts 2010 hedder dokumentet 07-03-2010.aspx - og din programmering kalder
>> datoen 7-3-2010 - er det muligt at få frem via en anden getdate?
>
> Jeg tør jo snart ikke hjælpe mere af frygt for at få på puklen af folk for
> hvem form er vigtigere end indhold, og som mener det er syndigt at komme med
> små hurtige eksempler som skal hjælpe folk på vej.
>
> Nå, men ideen er at tilføje et ekstra nul hvis dato eller måned er på ét
> ciffer, altså <=9,
>
> så:
>
> d = dato.getDate();
> if(d<=9) {
> d = "0" + d;
> }
>
> m = dato.getMonth()+1;
> if(m<=9) {
> m = "0" + m;
> }
>
> skulle gøre det for dig.
>
>
> Hilsen
> Martin

eller
("0"+d).substr( -2, 2)
i linket
document.getElementById(id).href = "http://mydomain.dk/2010/" +
("0"+d).substr( -2, 2) + "-" + ("0"+m).substr( -2, 2) + "-" + y +
".aspx";

Der er ikke nogen der giver dig på puklen. Der er nogen der har en
begrundet anderledes mening end dig om tingene - og tillader sig at
give udtryk for dem.
Og der er vist heller ingen der mener det er syndigt med små hurtige
eksempler. Det eksempel du gav, tilsidesatte det jeg havde foreslået.
Jeg argumenterede bare, hvorfor jeg mener mit eget var bedre.

Birger

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



Martin Larsen (07-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 07-03-10 09:28

Birger Sørensen wrote:

> Og der er vist heller ingen der mener det er syndigt med små hurtige
> eksempler. Det eksempel du gav, tilsidesatte det jeg havde foreslået.
> Jeg argumenterede bare, hvorfor jeg mener mit eget var bedre.

Mit eksempel tilsidesatte ikke dit. Det supplerede det. Ebbe gav udtryk
for at være meget nybegynder, så jeg mente han ville have gavn af et
fuldt eksempel. Og det lavede jeg så, på min måde.

Men jeg følte ikke behov for at rakke ned på din kode. Det er forskellen.

Martin



Birger Sørensen (07-03-2010)
Kommentar
Fra : Birger Sørensen


Dato : 07-03-10 09:52

Martin Larsen skrev:
> Birger Sørensen wrote:
>
>> Og der er vist heller ingen der mener det er syndigt med små hurtige
>> eksempler. Det eksempel du gav, tilsidesatte det jeg havde foreslået.
>> Jeg argumenterede bare, hvorfor jeg mener mit eget var bedre.
>
> Mit eksempel tilsidesatte ikke dit. Det supplerede det. Ebbe gav udtryk for
> at være meget nybegynder, så jeg mente han ville have gavn af et fuldt
> eksempel. Og det lavede jeg så, på min måde.
>
> Men jeg følte ikke behov for at rakke ned på din kode. Det er forskellen.
>
> Martin

Nej. Du konstaterede at det ikke er noget godt sted at tildele den
faktiske link adresse til elementet i onload, og at din egen suppe med
indhold og js rodet sammen er meget bedre. Uden at begrunde det.

Og det var såmænd ikke for at rakke ned på din kode.
Mere at jeg syntes ikke det er fikst, at introducere uøvede til
"teknikker", som de om ikke ret længe alligevel skal til at lære ikke
at bruge.

http://en.wikipedia.org/wiki/Unobtrusive_JavaScript

Birger

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



Martin Larsen (07-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 07-03-10 10:02

Birger Sørensen wrote:

> Nej. Du konstaterede at det ikke er noget godt sted at tildele den
> faktiske link adresse til elementet i onload, og at din egen suppe med
> indhold og js rodet sammen er meget bedre. Uden at begrunde det.

Nu holder du altså snart op. Det var Chano Andersen, ikke mig.

Martin

Birger Sørensen (07-03-2010)
Kommentar
Fra : Birger Sørensen


Dato : 07-03-10 10:11

Følgende er skrevet af Martin Larsen:
> Birger Sørensen wrote:
>
>> Nej. Du konstaterede at det ikke er noget godt sted at tildele den
>> faktiske link adresse til elementet i onload, og at din egen suppe med
>> indhold og js rodet sammen er meget bedre. Uden at begrunde det.
>
> Nu holder du altså snart op. Det var Chano Andersen, ikke mig.
>
> Martin

Og du var helt enig med Chano...
Men jo - jeg gider heller ikke mere.

Birger

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



Martin Larsen (07-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 07-03-10 10:15

Birger Sørensen wrote:

> Og du var helt enig med Chano...
> Men jo - jeg gider heller ikke mere.

Du kan i det mindste beklage at du blandede indlæggene sammen og
beskyldte mig for nogle udtalelser som en anden kom med.

Martin

Martin Larsen (07-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 07-03-10 10:26

Martin Larsen wrote:

> Birger Sørensen wrote:
>
>> Og du var helt enig med Chano...
>> Men jo - jeg gider heller ikke mere.
>
> Du kan i det mindste beklage at du blandede indlæggene sammen og
> beskyldte mig for nogle udtalelser som en anden kom med.

Desuden fortalte jeg blot at jeg ville gøre det på samme måde. Dette er
ikke det samme som at jeg erklærer mig enig i at onload er et dårligt
sted at placere koden i, for det er det ikke.

Kun hvis du i koden skal referere til eksterne elementer som fx billeder
er onload uheldigt, idet du da ikke kan være sikker på at disse
elementer er loadede når din kode kører.

I dit tilfælde referer du blot til et element i selve dokumentet, og så
er det helt fint at bruge onload.

Martin

Martin Larsen (07-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 07-03-10 10:46

Martin Larsen wrote:

> Kun hvis du i koden skal referere til eksterne elementer som fx billeder
> er onload uheldigt, idet du da ikke kan være sikker på at disse
> elementer er loadede når din kode kører.

Her fik jeg skrevet noget vrøvl. Jeg mener det lige omvendt:

windows.onload kører når ALLE eksterne elementer, såsom billeder, js- og
css-filer mm. er færdigloadede. Det betyder at ens javascript-kode først
går i gang når alle disse ting er på plads.

I mange tilfælde betyder det en forsinkelse på adskillige sekunder, især
når der linkes til ekstern kode som fx Google Analytics, Indextools mfl.

Derfor er det i mange tilfælde en dårlig ide at placere koden i onload,
men igen, i dit tilfælde er det ok.

Martin

Stig Johansen (07-03-2010)
Kommentar
Fra : Stig Johansen


Dato : 07-03-10 11:44

Martin Larsen wrote:

> I mange tilfælde betyder det en forsinkelse på adskillige sekunder, især
> når der linkes til ekstern kode som fx Google Analytics, Indextools mfl.

Nåh, så faldt du til patten

Problemstillinger er _netop_ at placere ekstern kode i <body> sektionen, da
det medfører forsinkelser for brugeren.

Lad os kalde det TTV (Time To View), og ved at placere disse 'ting' i <body>
opnår man at forsinke brugeren i sin oplevelse.

(Netop fordi Google-analytics optræder i <body> har jeg URL-blocket den, så
jeg ikke behøver at 'slåsser' med unødig forsinkelse på rendereing).

(( Den optræder formentlig fordi Google beskriver det sådan, men jeg håber
(for Google), at det ikke er en anbefaling, men kun et hint til dem der
ikke ved bedre))
--
Med venlig hilsen
Stig Johansen

Martin Larsen (08-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 08-03-10 09:39

Stig Johansen wrote:

> Nåh, så faldt du til patten

Nope. Har altid været af den mening. Netop derfor bruger jeg andre
metoder til at at loade fx Googla Analytics så den ikke forsinker
sidevisningen. jQuery er velegnet til dette, men der er flere måder.

> Problemstillinger er_netop_ at placere ekstern kode i<body> sektionen, da
> det medfører forsinkelser for brugeren.

Ja. Det er vi da helt enige i.

Martin

Stig Johansen (08-03-2010)
Kommentar
Fra : Stig Johansen


Dato : 08-03-10 10:14

Martin Larsen wrote:

> Stig Johansen wrote:
>
>> Nåh, så faldt du til patten
>
> Nope. Har altid været af den mening. Netop derfor bruger jeg andre
> metoder til at at loade fx Googla Analytics så den ikke forsinker
> sidevisningen. jQuery er velegnet til dette, men der er flere måder.
>
>> Problemstillinger er_netop_ at placere ekstern kode i<body> sektionen,
>> da det medfører forsinkelser for brugeren.
>
> Ja. Det er vi da helt enige i.

Jeg opfatter det som om vi er enige.
Om koden (jfr. din løsning) placeres mellem <body> og </body>, eller i
<head> eller eksternt, er fløjtende ligegyldigt da det har betydning for
rendering.

Min anke er alle disse 'tracking' ting, som intet har med rendereing at
gøre, og burde til enhver tid loades *efter* siden er vist (så brugeren
ikke oplever unødig TTS (Time To Show)).

Dit løsningsforslag er (performancewise) perfekt, så det har jeg ikke til
hensigt at kritisere.

--
Med venlig hilsen
Stig Johansen

Martin Larsen (07-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 07-03-10 10:12

Birger Sørensen wrote:

> Mere at jeg syntes ikke det er fikst, at introducere uøvede til
> "teknikker", som de om ikke ret længe alligevel skal til at lære ikke at
> bruge.

> http://en.wikipedia.org/wiki/Unobtrusive_JavaScript

Næææh hvor sjovt! I omtalte artikel på Wikipedia fremhæver de jQuery som
et eksempel på, citat: "modern standards-based markup practices"

Hvilke lige præcis er en af de vigtigste grunde til at bruge jQuery:
total adskillelse mellem kode og markup.

Men da jeg prøvede at fortælle Anders Mikkelsen i en af de forrige tråde
om jQuery, var det *også* galt.

Martin


Birger Sørensen (07-03-2010)
Kommentar
Fra : Birger Sørensen


Dato : 07-03-10 10:55

Martin Larsen frembragte:
> Birger Sørensen wrote:
>
>> Mere at jeg syntes ikke det er fikst, at introducere uøvede til
>> "teknikker", som de om ikke ret længe alligevel skal til at lære ikke at
>> bruge.
>
>> http://en.wikipedia.org/wiki/Unobtrusive_JavaScript
>
> Næææh hvor sjovt! I omtalte artikel på Wikipedia fremhæver de jQuery som et
> eksempel på, citat: "modern standards-based markup practices"
>
> Hvilke lige præcis er en af de vigtigste grunde til at bruge jQuery: total
> adskillelse mellem kode og markup.
>
> Men da jeg prøvede at fortælle Anders Mikkelsen i en af de forrige tråde om
> jQuery, var det *også* galt.
>
> Martin

At jQuery anvender en fornuftig markup, er vel ikke det samme som at
det er fornuftigt at bruge jQuery til hvadsomhelst.
Og det er det heller ikke, at jQuery adskiller tingene som de bør.

Og der er ikke kommet nogen begrundelse for ikke at adskille tingene, i
dette simple eksempel, hvor det er så oplagt.

Birger

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



Martin Larsen (07-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 07-03-10 11:28

Birger Sørensen wrote:

> At jQuery anvender en fornuftig markup, er vel ikke det samme som at det
> er fornuftigt at bruge jQuery til hvadsomhelst.

Hvem har også sagt at man skal bruge jQuery til hvad som helst?

> Og der er ikke kommet nogen begrundelse for ikke at adskille tingene, i
> dette simple eksempel, hvor det er så oplagt.

Hvorfor skulle jeg begrunde mit eksempel? Min eneste hensigt er at
hjælpe Ebbe videre med datofunktionen, og dette pakker jeg så ind i et
hurtigt eksempel som er fuldt fungerende. Det har jeg også allerede
gjort opmærksom på.

Martin

Martin Larsen (07-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 07-03-10 09:40

Birger Sørensen wrote:

> eller
> ("0"+d).substr( -2, 2)

I øvrigt en meget fix måde at gøre det på.

Martin

Ebbe Bæk (06-03-2010)
Kommentar
Fra : Ebbe Bæk


Dato : 06-03-10 21:27

> De omtalte aspx-sider er af formatet dd-mm-year, dvs. at for datoen 7.
> marts 2010 hedder dokumentet 07-03-2010.aspx - og din programmering kalder
> datoen 7-3-2010 - er det muligt at få frem via en anden getdate?

NÅ! Jeg kan da også lige tænke mig om!

if (d < 10)
d="0"+d;

if (m < 10)
m="0"+m;

Så er problemet løst! Men tak, Martin, for din hjælp!

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Birger Sørensen (06-03-2010)
Kommentar
Fra : Birger Sørensen


Dato : 06-03-10 12:55

Martin Larsen formulerede lørdag:
> Ebbe Bæk wrote:
>
>> Hvordan skal afviklingen af scriptet kodes, hvis syntaxen er:
>> http://mydomain.dk/2010/dd-mm-year.aspx
>
> Som Birger foreslår, sættes href med en getElementById. Jeg har dog her lavet
> en funktion for overskuelighedens skyld, men det er ikke nødvendigt.
>
> I dette fulde eksempel returnerer den dags dato hvis det er en søndag,
>
> <html>
> <head>
> <script type="text/javascript">
> function setSoensdagsLink(id) {
> dato = new Date()
>
> dageTilSoendag = 7-dato.getDay();
> dato.setDate(dato.getDate()+dageTilSoendag);
>
> d = dato.getDate();
> m = dato.getMonth()+1;
> y = dato.getFullYear();
>
> document.getElementById(id).href = "http://mydomain.dk/2010/" + d +
> "-" + m + "-" + y + ".aspx";
> }
> </script>
>
> </head>
> <body>
> <a id="soendagslink">Søndagslink</a>
> <script type="text/javascript">
> setSoensdagsLink('soendagslink');
> </script>
> </body>
> </html>
>
>
> Hilsen
> Martin

Ja, sådan gjorde man også i '90erne - og hvorfor lave om på noget der
virker?

HTML til indholdet, CSS til formattering/præsentation og script til
funktionalitet - adskilte.
Og det bliver vist aldrig unobtrusive...

Birger

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



Stig Johansen (06-03-2010)
Kommentar
Fra : Stig Johansen


Dato : 06-03-10 18:35

"Birger Sørensen" <sdc@bbsorensen.com> wrote in message
news:4b9242aa$0$285$14726298@news.sunsite.dk...
> Og det bliver vist aldrig unobtrusive...

Er du sarkastisk, eller mener du det?

Unobtrusive version:
http://w-o-p-r.dk/test/datelink.html

--
Med venlig hilsen/Best regards
Stig Johansen




Birger Sørensen (06-03-2010)
Kommentar
Fra : Birger Sørensen


Dato : 06-03-10 19:51

Stig Johansen kom med denne ide:
> "Birger Sørensen" <sdc@bbsorensen.com> wrote in message
> news:4b9242aa$0$285$14726298@news.sunsite.dk...
>> Og det bliver vist aldrig unobtrusive...
>
> Er du sarkastisk, eller mener du det?
>
> Unobtrusive version:
> http://w-o-p-r.dk/test/datelink.html

:D
Kommentaren om, at der ikke er nogen grund til at lave om på tingene
når den virkede i 90'erne, var ment sarkastisk/ironisk.

Og det jeg mente, var at den af Martin Larsen leverede metode, med at
indlejere <script> i <body>, som jeg mener er en uskik, aldrig kan
blive unobtrusive.
Ikke at jeg ved så meget om det emne, men på et eller andet tidspunkt,
kan jeg godt forestille mig, at det bliver et krav, evt. en del afW3C
at <script> kun må stå i header - måske endda kun med refrance til
externe filer.
Ingen tvivl om at det vil fungere i de fleste browsere lige nu.
Men koden .... uf!

Birger

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



Martin Larsen (06-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 06-03-10 20:11

Birger Sørensen wrote:

> Og det jeg mente, var at den af Martin Larsen leverede metode, med at
> indlejere <script> i <body>, som jeg mener er en uskik, aldrig kan blive
> unobtrusive.

Altså for pokker da, klap lige hesten! Det her er et eksempel, ikke?
Ebbe er nok ude efter at få at vide hvordan han laver datofunktionen,
det er det *centrale*. Og jeg hjælper han ved at vise et fungerende
eksempel, og jeg kan kun paste det ind i indlægget på denne måde.

Ih altså!!!

Martin

Martin Larsen (06-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 06-03-10 20:31

Birger Sørensen wrote:

> Og det jeg mente, var at den af Martin Larsen leverede metode, med at
> indlejere <script> i <body>, som jeg mener er en uskik, aldrig kan blive
> unobtrusive.

Stakkels Google. De er helt hen i skoven med deres standardkode til
Google Analytics.

Vis mig lige et eksempel på en real-life hjemmeside hvor man ikke har
<script> tags i <body>.

> Men koden .... uf!

Og hvad er der så galt med den? Du bryder dig ikke om placeringen af den
i <body>, men selve koden?

Der er forskellige stilarter, eller skoler for den sags skyld, i hvordan
man programmerer. For tiden er fx MVC (model-view-controller) ret
populært, men der findes ikke noget facit.

Så du kan ikke lide at putte <script> tags i body, fint nok, men en
sådan kommertar som "uf!" er helt ærligt uværdigt for et eksempel som
Ebbe forhåbentligt er glad for at få.

Martin


Birger Sørensen (07-03-2010)
Kommentar
Fra : Birger Sørensen


Dato : 07-03-10 10:09

Martin Larsen har bragt dette til os:
> Birger Sørensen wrote:
>
>> Og det jeg mente, var at den af Martin Larsen leverede metode, med at
>> indlejere <script> i <body>, som jeg mener er en uskik, aldrig kan blive
>> unobtrusive.
>
> Stakkels Google. De er helt hen i skoven med deres standardkode til Google
> Analytics.
>
> Vis mig lige et eksempel på en real-life hjemmeside hvor man ikke har
> <script> tags i <body>.
>
>> Men koden .... uf!
>
> Og hvad er der så galt med den? Du bryder dig ikke om placeringen af den i
> <body>, men selve koden?
>
> Der er forskellige stilarter, eller skoler for den sags skyld, i hvordan man
> programmerer. For tiden er fx MVC (model-view-controller) ret populært, men
> der findes ikke noget facit.
>
> Så du kan ikke lide at putte <script> tags i body, fint nok, men en sådan
> kommertar som "uf!" er helt ærligt uværdigt for et eksempel som Ebbe
> forhåbentligt er glad for at få.
>
> Martin

Undskyld.

Jo, der er forskellige stilarter. Og nogen af dem er ved at blive
"deprecated".
Og forhåbentlig er Ebbe da glad for at få løst sit problem, selvom det
måske lærer ham nogle ting, han (måske) bliver nødt til at glemme igen,
eller finde alternative løsninger til.

Jeg har altid undgået js i body når det på nogen måde kan lade sig
gøre, så jeg kunne godt give dig adskillige link.
Det kan godt være, at der er mange der bruger den teknik. Men - "two
wrongs don't make a right" - udviklingen går altså en anden vej...

Birger

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



Rune Jensen (07-03-2010)
Kommentar
Fra : Rune Jensen


Dato : 07-03-10 12:21

Den 07-03-2010 10:08, Birger Sørensen skrev:

> Jeg har altid undgået js i body når det på nogen måde kan lade sig gøre,
> så jeg kunne godt give dig adskillige link.
> Det kan godt være, at der er mange der bruger den teknik. Men - "two
> wrongs don't make a right" - udviklingen går altså en anden vej...

Jeg er ikke så meget inde i selve koden, men javascript i body har en
tendens til at "fucke up" i Opera. Det har jeg i hvert fald oplevet et
par gange. Derfor plejer jeg ikke selv at anbefale det. Rent generelt,
altså.


MVH
Rune Jensen

Martin Larsen (06-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 06-03-10 21:37

Birger Sørensen wrote:

> Og det jeg mente, var at den af Martin Larsen leverede metode, med at indlejere <script> i <body>,
> som jeg mener er en uskik, aldrig kan blive unobtrusive.

> men på et eller andet tidspunkt, kan jeg godt forestille mig, at det bliver et krav, evt. en del afW3C at <script> kun må stå i header

Så er det da pudsigt at W3C selv bruger <script> tags i body i deres
egen html. Og endda er så dybt uansvarlige at deres allerførste eksempel
gør netop dette:

http://www.w3.org/TR/REC-html40/interact/scripts.html#h-18.2.2.2

Ligesom:

google.com
html.dk
wikipedia.org
microsoft.com
dr.dk
dmi.dk

Og stort set alle andre der forholder sig til virkeligheden.

Men alle disse sider er jo også lavet af glade amatører.

> Ikke at jeg ved så meget om det emne,

Nej, tydeligvis ikke

Martin

Martin Larsen (06-03-2010)
Kommentar
Fra : Martin Larsen


Dato : 06-03-10 20:18

Stig Johansen wrote:

> Unobtrusive version:
> http://w-o-p-r.dk/test/datelink.html

Hvorfor har du fundet det nødvendigt at tilføje
jsrepository.asp?f=events?

Martin



Stig Johansen (06-03-2010)
Kommentar
Fra : Stig Johansen


Dato : 06-03-10 23:03

Martin Larsen wrote:

> Hvorfor har du fundet det nødvendigt at tilføje
> jsrepository.asp?f=events?

Det er fordi jeg har en del 'kodestumper', hvor jeg har lavet et asp script,
der samler dem i et request.

Dvs. jsrepository.asp?f=fil1,fil2,fil3...

--
Med venlig hilsen
Stig Johansen

Chano Andersen (07-03-2010)
Kommentar
Fra : Chano Andersen


Dato : 07-03-10 15:01

Den 06-03-2010 18:34, Stig Johansen skrev:
> Unobtrusive version:
> http://w-o-p-r.dk/test/datelink.html

Som indlæser en masse unødvendig kode, endnu en uskik... Ideelt set, bør
kun indlæses den kode der er absolut nødvendig for at siden vises og har
den ønskede funktionalitet.

- Chano Andersen

Stig Johansen (07-03-2010)
Kommentar
Fra : Stig Johansen


Dato : 07-03-10 17:38

Chano Andersen wrote:

> Den 06-03-2010 18:34, Stig Johansen skrev:
>> Unobtrusive version:
>> http://w-o-p-r.dk/test/datelink.html
>
> Som indlæser en masse unødvendig kode, endnu en uskik... Ideelt set, bør
> kun indlæses den kode der er absolut nødvendig for at siden vises og har
> den ønskede funktionalitet.

Dette var ikke et løsningsforslag, men en reaktion på Birger's kommentar,
som jeg opfattede som 'kunne ikke lade sig gøre'.

Bortset fra det, så indeholder det et hint om hvordan man kan strukturere
sit javascript, så der kan laves adskillige onload events på samme side
(hvilket jeg bruger nogle steder).

--
Med venlig hilsen
Stig Johansen

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste