Avatar billede flashn00b Nybegynder
19. juni 2005 - 21:53 Der er 10 kommentarer

Søger dette system!

Hejsa.
Jeg er igang med noget specielt og søger en som kan lave netop følgende script:

Man har en input som kaldes besked.
Når man trykker ENTER / på submit knappen skal den indsætte den tekst man skrev i "besked" ind i parent.andet.location="skriv.php?besked=HER"

Og efter 10 sekunder skal den gå til funktionen "CLEAR"

Men ikke nok med det, skal den KUN gå til funktionen CLEAR én gang.

Giver lige ét eksempel.

Jeg har et inputfelt som kaldes besked.
Jeg skriver hej i det og den går til parent.andet.location="skriv.php?besked=hej"

så er der gået 10 sekunder og den skal gå til funktionen "CLEAR"

så skriver jeg en ny besked og den skal "genstarte" funktionen CLEAR sådan der skal gå 10 sekunder før den går til CLEAR igen.

Forstår i? - ellers spørg.
Avatar billede thesurfer Nybegynder
19. juni 2005 - 22:50 #1
Eksempel:

<form onsubmit="return mf(this)">
<input type="text" name="besked">
<input type="submit" name="submit" value="send">
</form>

<script type="text/JavaScript">
function mf(f)
{
parent.andetvindue.window.location.href='skriv.php?besked=' + f.besked.value;
var tid = setTimeout("clear()",10000);
return false;
}

function clear()
{
clearInterval(tid);

// din kode her...

}
</script>

/theSurfer
Avatar billede thesurfer Nybegynder
19. juni 2005 - 22:52 #2
Rettelse (kom til at skrive "setTimeout" i stedet for "setInterval"):

<form onsubmit="return mf(this)">
<input type="text" name="besked">
<input type="submit" name="submit" value="send">
</form>

<script type="text/JavaScript">
function mf(f)
{
parent.andetvindue.window.location.href='skriv.php?besked=' + f.besked.value;
var tid = setInterval("clear()",10000);
return false;
}

function clear()
{
clearInterval(tid);

// din kode her...

}
</script>

/theSurfer
Avatar billede mr_bacardi Nybegynder
19. juni 2005 - 23:19 #3
thesurfer - Jeg kan ikke se hvorfor du retter dig selv? setTimeout er da bedre at bruge i dette tilfælde?
setTimeout("clear();", 10000); /*Kalder clear() én gang, efter 10 sek - her efter gør den ikke mere.*/
setInterval("clear();", 10000); /*Kalder clear() én gang, efter 10 sek - her efter venter den 10 sek, og kalder igen clear(), venter 10 sek, kalder igen osv. Det sidste forhindrer du ved at indsætte clearInterval() i clear() funktionen og du opnår derfor samme effekt som du ville have gjort med setTimeout() */

Der er ikke nogen forskel nej, bortset fra at du med setInterval() bruger en linie ekstra, men hvorfor så rette til at bruge setInterval(), og ikke setTimeout()?
Eftersom han giver udtryk for den kun må kalde clear() én gang, ved hver besked, vil der i tilfælde af clearInterval() ikke bliver udført, ske det at den bliver kaldt uendeligt (indtil brugeren lukker browservinduet), med 10 sekunders mellemrum. Det er muligvis lidt teoretisk pjat, men synes bare lige det skulle nævnes :)

Hvis du / I vil læse mere om de 2 funktioner, er det godt beskrevet her:
http://javascript.about.com/library/blstvsi.htm
Avatar billede olebole Juniormester
19. juni 2005 - 23:25 #4
<ole>

flashn00b >> Selvom du klæder spørgsmålet lidt anderledes ud, er der stadig tale om et ulovligt spørgsmål. Der skal ifølge Ekspertens regler gå en uge mellem identiske spørgsmål.

Alle andre må leve med de regler - og gør det. Hvad er det nu lige, der gør dig så speciel, at du ikke mener, de bør være gældende i dit tilfælde??

/mvh
</bole>
Avatar billede flashn00b Nybegynder
19. juni 2005 - 23:25 #5
Dvs Mr Bacardi, dette virker?


<form onsubmit="return mf(this)">
<input type="text" name="besked">
<input type="submit" name="submit" value="send">
</form>

<script type="text/JavaScript">
function mf(f)
{
parent.andetvindue.window.location.href='skriv.php?besked=' + f.besked.value;
var tid = setTimeout("clear()",10000);
return false;
}

function clear()
{
clearInterval(tid);

// din kode her...

}
</script>
Avatar billede flashn00b Nybegynder
19. juni 2005 - 23:26 #6
Dette er godt nok et helt anden spørgsmål, men okay.. Så bare smut igen.. Har set dine karma'er og ser en del som siger du er meget god til at provokere folk med udyldige kommentare i spørgsmåle..
Avatar billede olebole Juniormester
19. juni 2005 - 23:33 #7
1. Det er ikke op til dig, hvilke spørgsmål, jeg kommenterer
2. Jeg kan ikke se forskellen, kan du forklare den?
3. Ja, din tolkning af E's regler, viser ret tydeligt, du har problemer med at læse - det kniber åbenbart også med at læse Karma'er. Flertallet er af en anden mening end du ... og så en nogle småfolk, der ikke engang har fået lært at underskrive sig. Den slags er jo ikke til at tage alvorligt  :)
Avatar billede flashn00b Nybegynder
19. juni 2005 - 23:35 #8
Det virker perfekt, men problemet er bare..
Når man har skrevet en besked fx. Hejsa.
Også efter 2 sekunder skriver "Jeg mener hej" så fjerner den diven efter 8 sekunder.

Min kode:

<SCRIPT type="text/javascript">
function besked(f){
var tekst = f.besked.value.replace(/<\/?[a-z].*?>/ig, "").substring(0, 70);
parent.andet.location='skriv.php?besked=' +tekst;
parent.chat.document.getElementById('textGoesHereTable').style.visibility='visible';
parent.chat.document.getElementById('textGoesHere').innerHTML = tekst;
f.besked.value='';
var tid = setTimeout("Clear()",10000);
return false;

}
function Clear(){
parent.andet.location = 'ikkeaktiv.php';
parent.chat.document.getElementById('textGoesHereTable').style.visibility = 'hidden';
clearInterval(tid);
}

</script>
Avatar billede jesperkm Nybegynder
20. juni 2005 - 13:12 #9
Lukker.
Avatar billede olebole Juniormester
20. juni 2005 - 16:10 #10
Ingen af dine profiler behøver lukke dette spørgsmål. Det kommer der sikkert en CoAdmin og gør ... sammen med profilerne  ;o)
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

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