Avatar billede Slettet bruger
26. maj 2005 - 22:45 Der er 25 kommentarer og
1 løsning

Hent numerisk næste side - script?

Jeg har 4 forskellige html-sider, som jeg gerne vil kunne kalde frem én efter én i samme iframe, men kun ved hjælp af et stk. knap/link.

Jeg forestiller mig at siderne kunne hedde side1, side2, side3 og side4.
Når man så klikker på knappen/linket hentes side1, ved næste klik hentes side2 osv. Efter side4 hentes side1 igen.
Det vigtige er at funktionen _IKKE_ køre i random, men i numerisk rækkefølge!

Altså en slags >> NÆSTE >> funktion....

Nogen der har et script som kan gøre dette ??
Avatar billede busschou Praktikant
26. maj 2005 - 23:05 #1
sådan her ?
---
<script>
function skift(){
var elm = document.getElementById('mybutton');
var elm1 = document.getElementById('myframe');
if (elm.value == 'side1'){
elm1.src='side1.htm';
elm.value='side2';
}else if (elm.value == 'side2'){
elm1.src='side2.htm';
elm.value='side3';
}else if (elm.value == 'side3'){
elm1.src='side3.htm';
elm.value='side4';
}else if (elm.value == 'side4'){
elm1.src='side4.htm';
elm.value='side1';
}
}
</script>

<input id="mybutton" type="button" value="side2" onclick="skift();">
<iframe id="myframe" src="side1.htm>
Avatar billede busschou Praktikant
26. maj 2005 - 23:06 #2
Hvis du får mange flere end fire sider er det måske en fordel at lave en tæller i stedet for alt for mange if else statements
Avatar billede busschou Praktikant
26. maj 2005 - 23:11 #3
Der var lige en slå fejl så den duede kun i FF.. nu dur den også i IE :o)
----
<script>
function skift(){
var elm = document.getElementById('mybutton');
var elm1 = document.getElementById('myframe');
if (elm.value == 'side1'){
elm1.src='side1.htm';
elm.value='side2';
}else if (elm.value == 'side2'){
elm1.src='side2.htm';
elm.value='side3';
}else if (elm.value == 'side3'){
elm1.src='side3.htm';
elm.value='side4';
}else if (elm.value == 'side4'){
elm1.src='side4.htm';
elm.value='side1';
}
}
</script>

<input type="button" id="mybutton" value="side2" onclick="skift();" /><br>
<iframe id="myframe" src="side1.htm"></iframe>
Avatar billede Slettet bruger
26. maj 2005 - 23:40 #4
Genialt busschou! Den er lige i øjet...

Men... Jeg har jo allerede en knap - en onmouseover knap, kan du finde en fejl her:

<A onmouseover="skiftBillede('changer','billede54')" onmouseout="skiftBillede('changer','billede53')" id="mybutton" value="side2" onclick="skift();"/><IMG src="/changer.gif" height=26 width=26 border=0 name=changer></A>

Tænker på om dette er rigtigt: id="mybutton" value="side2" onclick="skift();"/> at sætte ind i <a onmouseover ... tag'et ??

Det virker nemlig ikke i FireFox og Netscrape - kun IE, hvorimod det andet virker i alle browserne, som du også selv skriver...
Avatar billede roenving Novice
27. maj 2005 - 01:45 #5
-- og det er ikke genialt, når man kalder en funktion, som har dybt brug for en property fra det element, som kalder det, og ikke engang sender elementet med, så man undgår evt. problemer med at finde det ...

-- men f.eks.

function skift(elm){
  var num = elm.value.match(/\d+$/)[0];
  document.getElementById('myframe').src = "side" + num + ".html";

/* eller en helt anden løsning:
  var side = elm.value;//a-ting med en value vil dog give valideringsfejl ...
  document.getElementById('myframe').src = side;
*/
}

-- og det skal selvfølgelig tilføjes, at der i eet html-dokument _aldrig_ kan findes mere end eet element med samme id, så det vil f.eks. være smart at benytte sig af det til nummerereringen:

  var num = elm.id.match(/\d+$/)[0];

<A onmouseover="skiftBillede('changer','billede54')" onmouseout="skiftBillede('changer','billede53')" id="mybutton" id="side2" onclick="skift();"/><IMG src="/changer.gif" height=26 width=26 border=0 name=changer></A>
Avatar billede roenving Novice
27. maj 2005 - 01:46 #6
Hov, det skal selvfølgelig være:

<A onmouseover="skiftBillede('changer','billede54')" onmouseout="skiftBillede('changer','billede53')" id="mybutton" id="side2" onclick="skift(this);"/><IMG src="/changer.gif" height=26 width=26 border=0 name=changer></A>
Avatar billede Slettet bruger
27. maj 2005 - 02:45 #7
Ja, nu kan jeg sg* ikke mere idag.. zZz

Jeg kan fint få det til at virke i x-browser med:

<input type="image" id="mybutton" value="side2" onclick="skift();" src="/changer.gif" border="0">
...og det er da sådan set også fint nok (hvis det ikke kan være anderledes).

For hvis jeg  putter onmouseover ind i, så virker scriptet _KUN_ i IE.

En anden dum lille ting ved [input type="image"-metoden] er den grimme markering FireFox laver rundt om knappen når man klikker. - Ikke særlig fiks...

Jeg prøvede lige hurtigt dit onmouseover-link, Roenving. Det får jeg heller ikke til at virke rigtigt i fx FireFox. Mouseover-effekten virker, men resten virke ikke... (scriptet).

Nå men, skal på arbejde imorgen, så er først tilbage lørdag engang - så kigger jeg videre på det.
Ka' i ha' det!
Avatar billede busschou Praktikant
27. maj 2005 - 07:19 #8
roenving >> nu kan man jo diskutere hvad som er genialt og hvad som ikke er. Har hørt olebole sige engang at regulære udtryk "suger" en del. Så er det genialt?. Er det genialt at bruge regulære udtryk hvis man ikke er godt inde i dem og senere engang skal rette i sin kode og ikke kan tyde dem? Hehe - nå jo.. man kan jo så altid gå på eksperten :P
Avatar billede busschou Praktikant
27. maj 2005 - 07:30 #9
roenving >> By the way.. hvor sørger du for at man efter side 4 kommer til side et igen? Tæller din ikke blot en op hver gang?

baseig >> nu skal jeg så ikke sige om du vælger roenvings. For ingen tvivl om at regulære udtryk da er kortere. En <a> har ikke nogen value. Jeg troede der skulle stå hvilken side man gik til. Men det kan man bare droppe og lade den være en "næste". Så den burde kunne se sådan her ud så.
--
<A onmouseover="skiftBillede('changer','billede54')" onmouseout="skiftBillede('changer','billede53')" onclick="skift();"/><IMG src="/changer.gif" height=26 width=26 border=0 name=changer></A>
--
Da den nu ikke skal skifte så undgår vi også det ugeniale med den sender sig selv med. For det er slet ikke nødvendigt, da den ikke skal skifte ;o)
funktionen er derfor
--
<script>
function skift(){
var elm = document.getElementById('myframe');
if (elm.src == 'side1.htm'){
elm.src='side2.htm';
}else if (elm.src == 'side2.htm'){
elm.src='side3.htm';
}else if (elm.src == 'side3.htm'){
elm.src='side4.htm';
}else if (elm.src == 'side4.htm'){
elm.src='side1.htm';
}
}
</script>
Avatar billede roenving Novice
27. maj 2005 - 10:13 #10
Hvis man kender antallet af sider, kan man jo også bare tage den fra urlen ?-)
Avatar billede Slettet bruger
28. maj 2005 - 15:29 #11
Hvad der er genialt eller ikke genialt, skal jeg ikke udtale mig om, når det drejer som om koder. Det var bare et udtryk for min begejstring - ikke andet.. (sorry)

Ikke desto mindre har jeg endnu ikke et KOMPLET script, som virker med mouseover-knappen i flere browsere...
Har prøvet forskelligt frem og tilbage i mange mange timer nu, og nu gider jeg ikke bruge meget mere tid på det.

Så medmindre en af jer poster et script der virker efter min hensigt, så benytter jeg busschou's første løsning, som jeg har nævnt ovenfor (uden mouseover). - Kan ikke se andre muligheder pt.

..ser lige hvad der sker, inden jeg giver point.

PS. Jeg er _IKKE_ programmør jo - jeg er bager ;-)
Avatar billede busschou Praktikant
28. maj 2005 - 15:32 #12
har du et link?
Avatar billede Slettet bruger
28. maj 2005 - 15:55 #13
Ja, til en test-side (skal bruges andetsteds):

http://www.greycell.dk/flash-test.html
Avatar billede busschou Praktikant
28. maj 2005 - 15:59 #14
flot flash.. men der er ikke meget knap ;o).. tænkte på at se en side med din knap så det med mouseover måske kunne løses ;o)
Jeg er i øvrigt ikke den største javascript haj..så det var blot fordi det måske gav mere indsigt :o)
Avatar billede Slettet bruger
28. maj 2005 - 16:05 #15
Der skulle da gerne være en lille "f" -knap oppe i venstre hjørne..??
Avatar billede busschou Praktikant
28. maj 2005 - 16:09 #16
ahh ok ser det nu.. nu er der jo så ingen mouseover effect i koden pt kan jeg se. Jeg kan ikke forstå det ikke virker hvis du sætter den ind
Avatar billede Slettet bruger
28. maj 2005 - 16:12 #17
Hvilken en af dem skal jeg sætte ind ?? Prøv lige at poste den, så smider jeg den ind med det samme. - Så skal du bare se at det ikke virker... (formentlig)
Avatar billede busschou Praktikant
28. maj 2005 - 16:15 #18
som min kommentar 27/05-2005 07:30:45 dvs også scriptet
Avatar billede Slettet bruger
28. maj 2005 - 16:18 #19
Er hermed gjort.
Avatar billede busschou Praktikant
28. maj 2005 - 16:20 #20
hmm prøv rette onclick til onmousedown
Avatar billede Slettet bruger
28. maj 2005 - 16:24 #21
Det hjalp på IE at rette .htm til .html, men det virker stadig ikke i FireFox.
Avatar billede busschou Praktikant
28. maj 2005 - 16:26 #22
hmm det er lidt underligt synes jeg.. så skal det være fordi den ikke gider en onmousedown imens onmouseover...eller noget..
Jeg forstår desværre ikke hvorfor det ikke virker :o(
Det er muligt når roenving "vågner op" at han har en løsning
Avatar billede Slettet bruger
28. maj 2005 - 16:37 #23
Okay. Så er det da i det mindste ikke kun mig, det er galt med hehe...
(Har iøvrigt også prøvet med href="java script:void(0)" men det er ikke det...)

Jeg lader det hele være som nu, og så må vi se om roenving ligger vejen forbi senere.

Men ellers tak for hjælpen alligevel, busschou.
Avatar billede busschou Praktikant
28. maj 2005 - 16:40 #24
det var så lidt... i bogstavligste forstand ;o)
Avatar billede Slettet bruger
30. maj 2005 - 14:46 #25
busschou:

Prøv at se her: http://www.greycell.dk/flash-test.html (Ingen mouseover!)

Det virker i IE og Netscrape, men ikke i FireFox !! Det er fan'me da mærkeligt ik´?

Whatever, du får dine point nu, og så må jeg jo oprette et spørgsmål, om hvorfor det ikke virker i ligepræcis FireFox...
Avatar billede busschou Praktikant
30. maj 2005 - 14:50 #26
Jo det er lettere besynderligt.. håber nogen kan forklare dig hvorfor.. du må evt gerne poste løsningen her hvis du finder en altså.. for jeg synes det er for wierd
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester