Toon posts:

[JS] script laten wachten

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil als een gebruiker iets paste in een editable div, dat er eerst iets aan hem gevraagd wordt voordet er werkelijk wat gepost wordt.
Dit kan vrij gemakkelijk door

onpaste="return confirm('Weet je zeker dat je wilt pasten?');"

Maar nu zijn er twee antwoorden, ik heb er drie nodig(dus ook drie vragen) dat wil ik doen via een formpje met 3 radio items. Maar het probleem nu is dat er in onpaste niet wordt gewacht tot de gebruiker input heeft gegeven, confirm legt het hele proces stil. Hoe kan ik dat nabootsten?

  • Dryw.Filtiarn
  • Registratie: September 2001
  • Laatst online: 18-03 12:10
Psuedo code:

while antwoord = false
doe niks
end while

if antwoord = true
uit te voeren code
end if

=( Protected by witchcraft )=


Verwijderd

Topicstarter
Op maandag 11 februari 2002 19:53 schreef Dryw.Filtiarn het volgende:
Psuedo code:

while antwoord = false
doe niks
end while

if antwoord = true
uit te voeren code
end if
het id werkt, alleen een beetje te goed, want de gebruiker kan nu helemaal geen input meer geven omdat die loop alles bezet....

Het moet netzoiets zijn als showModelDialog in IE5.0+, btw het hoeft ook alleen maar te werken in IE 5.5+

Het probleem bij showModelDialog is dat je niet je eigen window kan bouwen, je zit altijd met dat kruisje etc.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 18:50

crisp

Devver

Pixelated

In plaats van een while loopje kan je beter om de 1/10 seconde of zo checken:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var answer = false;
function checkagain() {

  if (answer) {

    // code

    answer = false;

  } else {

    setTimeout('checkagain()', 100);

  }

}

Intentionally left blank


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

Dit is een functie die ik vorige week geschreven heb, nadat ik het zat was om telkens voor settimeout 2 functies aan te moeten roepen...

Hij voert een stuk code uit na een aantal seconden, en terminate dan de setTimeout waardoor hij zelf aangeroepen is 1 ms later.
code:
1
2
3
4
5
6
7
8
9
10
Var EventTimer = new Array();

function ExecuteEvent(what, id, time)
{
    if (!EventTimer[id])
    {
    EventTimer[id] = setTimeout(what, time);
    EventTimer[id + '2'] = setTimeout("clearTimeout(EventTimer['"+id+"']); clearTimeout(EventTimer['"+id +'2'+"']); EventTimer['"+id+"'] = null; EventTimer['" +id +'2'+"'] = null;", time+1);
    }
}

Stop uploading passwords to Github!


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 18:50

crisp

Devver

Pixelated

Op donderdag 21 februari 2002 10:06 schreef papa_eend het volgende:
Dit is een functie die ik vorige week geschreven heb, nadat ik het zat was om telkens voor settimeout 2 functies aan te moeten roepen...

Hij voert een stuk code uit na een aantal seconden, en terminate dan de setTimeout waardoor hij zelf aangeroepen is 1 ms later.
...
:? De logica hiervan ontgaat me even; je set een timeout, en cleared diezelfde timeout 1 ms later dan de eerste timeout? Dan is de functie toch al uitgevoerd en bestaat de timeout toch al niet meer?

Intentionally left blank


Verwijderd

Topicstarter
maar een setTimeout blokkeert niet de andere scripts en acties, volgende:
code:
1
2
3
4
5
function blaat(){
 alert('test');
 setTimeout("blaat()", 1000);
 alert('test1');
}

als je nu blaat aanroept wordt eerst alert('test') uitgevoerd, het script blijft dan wachten totdat je op ok hebt gedrukt, nu wordt setTimeout uitgevoerd, en gelijk daarna alert('test1') stel dat er tussen setTimeout en alert('test1') 2 ms zit, dan wordt blaat nadat je bij alert('test1') op ok hebt gedrukt 1000-2=998 ms later weer opnieuw uitgevoerd.

Dus aan setTimeout heb ik niets in dit geval....

ps. die setTimeout zal in deze vorm ongetwijfelt niet werken, maar het gaat om het id

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

Op donderdag 21 februari 2002 10:18 schreef crisp het volgende:

[..]

:? De logica hiervan ontgaat me even; je set een timeout, en cleared diezelfde timeout 1 ms later dan de eerste timeout? Dan is de functie toch al uitgevoerd en bestaat de timeout toch al niet meer?
Dat zou je wel verwachten ja...

Maar als ik bij mijn nieuwe menu menu gewoon de 'setTimeout' gebruik, en dan 'de grote klik als een debiel zo snel mogelijk op de knopjes' test uitvoer, krijg ik JavaScript errors, omdat de ene timeout nog niet afgelopen weg is, terwijl de andere al wil starten! :{

Stop uploading passwords to Github!

Pagina: 1