Thnx, het werkt inderdaad... damn dat was simpel.quote:Op zaterdag 25 februari 2006 16:07 schreef Webby het volgende:
document.write(raceCost); veranderen in: document.getElementById("IDNameVanBetreffendInputVeld").value = raceCost;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | { var attributes = new Array("bod", "agi", "rea", "str", "cha", "int", "log", "wil", "edge", "mag", "res"); for (i=0;i<attributes.length;i++) { if(document.getElementById(attributes[i]).value < 6) { var attributeCost = (parseInt(document.getElementById(attributes[i]).value) - 1)*10; window.alert(attributes[i] + "heeft als kosten" + attributeCost); var totalAttributesCost = parseInt(totalAttributesCost) + parseInt(attributeCost); } } window.alert(parseInt(totalAttributesCost)); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var attributes = new Array("bod", "agi", "rea", "str", "cha", "int", "log", "wil", "edge", "mag", "res"); var attributeCost = 0; var totalAttributesCost = 0; for (i = 0; i < attributes.length; i++) { if(document.getElementById(attributes[i]).value < 6) { attributeCost = (parseInt(document.getElementById(attributes[i]).value) - 1) * 10; alert(attributes[i] + "heeft als kosten" + attributeCost); totalAttributesCost += attributeCost; } } alert(totalAttributesCost); } |
1 |
Alleen een submitbutton zonder form?quote:Op zondag 26 februari 2006 03:39 schreef Nevermind het volgende:
Wat moet ik bij een form bij action of onsubmit invullen als ik niet wil dat de pagina verandert?
Dit werkt niet:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | <body onLoad="setTimeout( 'sendRequest( \'twee.html\' )', 1500 )"> <script type="text/javascript"> ---8<--- <knip> xmlhttprequest laden function sendRequest( file ) { xmlHttp.open( "GET", file, true ); xmlHttp.onreadystatechange = getRequest; xmlHttp.send( null ); } function getRequest() { --- 8<--- <knip> bij readystate 4 het volgende uitvoeren dynContent( 'testdiv', xmlHttp.responseText ); } function dynContent( id, content ) { if( ie = false ) { if( document.getElementById ) { rng = document.createRange(); el = document.getElementById( id ); rng.setStartBefore( el ); htmlFrag = rng.createContextualFragment( content ); while ( el.hasChildNodes() ) el.removeChild( el.lastChild ); el.appendChild( htmlFrag ); } } else { document.getElementById( id ).innerHTML = content; } } </script> <div id="testdiv">één</div> </body> </html> |
1 2 | twee |
1 |
Volgens mij kan dat niet zomaar. Ik weet niet precies of er een workaround is, maar volgens mij gaat dat niet op de manier die je nu probeert...ik kan je alleen even niet verder helpen nu.quote:Op zondag 26 februari 2006 22:50 schreef Nevermind het volgende:
Nog een vraagje:
Als ik de inhoud van een DIV vervang door een stuk tekst waar een stuk javascriptcode zit, dan wordt deze niet geparsed. Moet innerHTML er niet voor zorgen dat de javascript wel geparsed wordt? Klein opzetje om het te verduidelijken:
test.html
[ code verwijderd ]
twee.html:
[ code verwijderd ]
drie.html:
[ code verwijderd ]
Ik zou willen dat er "drie" in #testdiv komt te staan, maar ik kom tot twee.Op deze manier werkt het dus niet, maar hoe wel?
Ik gebruik deze AJAX Class: http://twilightuniverse.com/projects/sackquote:Op maandag 27 februari 2006 01:10 schreef Nevermind het volgende:
Alle vragen die ik de laatste tijd stel hebben te maken met een hobbyproject waar ik al veel te lang mee bezig benIk wil een windows-achtige interface hebben, waar schermpjes gedragen kunnen
worden en scripts uitgevoerd kunnen worden zonder de pagina te refreshen. Misschien zeggen screenshots wat meer;
De eerste versie werkte met windows die een iframe bevatten, en werkte vrij redelijk, maar werd erg traag met veel schermpjes en was niet erg crossbrowser-vriendelijk. Toen besloot ik over te gaan op een hidden iframe die de inhoud van alle schermpjes veranderde, maar daar liep ik ook tegen veel vreemde crossbrowserfouten aan. En nu ben ik bezig met een xmlHttprequest-versie die tot op heden erg crossbrowservriendelijk is en snel, alleen nu loop ik weer tegen allerlei limitaties en vreemde browserspecifieke fouten aan.
Als het eenmaal af is kan het voor een hele hoop dingen gebruikt worden, een CMS en een mailclient bijvoorbeeld. En ik wil het graag als interface hebben om een hoop dingen van mijn thuisserver te regelen. Maar tot op heden is er weinig resultaat en al vele uren werk
Die ie = false regel is inderdaad fout werkt nog steeds in IE overigens, maar verandert verder niks aan de vraag. Ik zal het eens met eval proberen
Ik kan zo snel niet vinden in welke browsers het zou moeten werken, maar als ik even snel de code door kijk dan werkt het iig niet in IE5.0. Verder wel aardig opgezet, alleen niet allemaal even efficient gecodeerd.quote:Op maandag 27 februari 2006 09:28 schreef Webby het volgende:
[..]
Ik gebruik deze AJAX Class: http://twilightuniverse.com/projects/sack
In Combinatie met deze DOM scripts: http://www.scottandrew.com/weblog/articles/cbs-events
Geheel crossbrowser en erg multifunctioneel inzetbaar.
En weer opgelost.quote:Op zaterdag 25 februari 2006 19:21 schreef Webby het volgende:
Je definineert de vars attributeCost en totalAttributeCost elke keer opnieew. defineer ze aan het begin en gebruik ze daarna.
Probeer hem eens zo:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | function displaySkillGroups() { var skillGroups = new Array ("Choose skillgroup", "Atheletics", "Biotech", "Close Combat", "Conjuring", "Cracking", "Electronics", "Firearms", "Influence", "Mechanic", "Outdoors", "Sorcery", "Stealth", "Tasking"); document.write("<select name=\"playerClass\" id=\"playerClass\" onchange=\"addRow()\">"); for (i=0;i<skillGroups.length;i++) { document.write("<option value=\"" + skillGroups[i] + "\">" + skillGroups[i] + "</option>"); } document.write("</select>"); } //genereer nieuwe tabel rij function addRow() { var x=document.getElementById('skillGroups').insertRow(1); var y=x.insertCell(0); y.innerHTML="..."; } //html code wat ik wil: <table id="skillGroups" border="1"> <tr> <td> <script type="text/javascript"> displaySkillGroups(); </script> </td> </tr> </table> |
1 2 3 4 5 6 7 8 9 10 | var options = ['Apple', 'Banana', 'Cherry']; var parent = document.getElementById(p_id); var select = parent.appendChild(document.createElement('SELECT')); var o; for (var i = 0; i < options.length; i++) { o = new Option(options[i], i); select.options.add(o); } } |
1 2 | <div id="container"></div> |
Hmmm, ik zie niet waarom het op die andere manier niet moet kunnen. Ik zal even wat ik heb online gooien...quote:Op dinsdag 28 februari 2006 23:10 schreef SuperRembo het volgende:
Ik denk niet dat dat gaat lukken met document.write. Als je de select met DOM functies maakt gaat het vrij eenvoudig.
Voorbeeldje:
[ code verwijderd ]
[ code verwijderd ]
Zie bijvoorbeeld ook HTML DOM Reference.
Hoe wil je met document.write aangeven waar de html toegevoegd moet worden?quote:Op dinsdag 28 februari 2006 23:23 schreef ToBe het volgende:
Hmmm, ik zie niet waarom het op die andere manier niet moet kunnen.
Thnxquote:Op dinsdag 28 februari 2006 23:36 schreef SuperRembo het volgende:
[..]
Hoe wil je met document.write aangeven waar de html toegevoegd moet worden?
De functie uit mijn voorbeeld geef je de id mee van het element waar de dropdown in gemaakt moet worden; simpel.
Ik ben weer wat verder dan eerst, alleen loop ik nu tegen het probleem aan dat ik weer een "probleem" krijg wat ik hierboven al eerder had.quote:Op dinsdag 28 februari 2006 23:23 schreef ToBe het volgende:
[..]
Hmmm, ik zie niet waarom het op die andere manier niet moet kunnen. Ik zal even wat ik heb online gooien...
link (deze doet het goed (met puntjes ipv script))
link (deze doet het niet goed (met <script>))
Kan iemand nog even een blik werpen? Het gaat dus om de pulldown bij "choose skillgroup".
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | { var skillGroups = new Array ("Choose skillgroup", "Atheletics", "Biotech", "Close Combat", "Conjuring", "Cracking", "Electronics", "Firearms", "Influence", "Mechanic", "Outdoors", "Sorcery", "Stealth", "Tasking"); document.write("<select name=\"playerClass\" id=\"playerClass\" onchange=\"addRow()\">"); for (i=0;i<skillGroups.length;i++) { document.write("<option value=\"" + skillGroups[i] + "\">" + skillGroups[i] + "</option>"); } document.write("</select>"); } function addRow() { var x=document.getElementById('skillGroups').insertRow(1); var y=x.insertCell(0); y.innerHTML = displaySkillGroups; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | if (!e) return; var newCell_skillGroup = e; var newSelect = newCell_skillGroup.appendChild(document.createElement('SELECT')); var skillGroups = new Array ("Choose skillgroup", "Atheletics", "Biotech", "Close Combat", "Conjuring", "Cracking", "Electronics", "Firearms", "Influence", "Mechanic", "Outdoors", "Sorcery", "Stealth", "Tasking"); var newOptions; for (var i = 0; i < skillGroups.length; i++) { newOptions = new Option(skillGroups[i], i); newSelect.options.add(newOptions); } } function addRow() { var skillGroup = document.getElementById('skillGroups').insertRow(1); var newCell_skillGroup = skillGroup.insertCell(0); if (!addSkillGroups(newCell_skillGroup)) { //weet niet of het echt deleteCell is, //maar het is wel zo netjes dat als je select insert een error geeft //je ook de cell weer verwijderd skillGroup.deleteCell(0); //daarna false terug geven, die kan je opvangen en waarmee je //een alert("addRow() failed") kan weergeven; return false; } return true; } |
Nogal, je spreekt submit() nu aan alsof het een normale functie is maar het is een methode van het form. Probeer dit: <a href="javascript:document.search.submit()">Search</a> Als dat niet werkt kan je eerst proberen je input een andere name te geven, deze is namelijk hetzelfde als die van je form.quote:Op donderdag 2 maart 2006 13:00 schreef Desdinova het volgende:
<form style="margin:0px; padding:0px;" enctype="multipart/form-data" name="search" id="1" action="index.php" method="get">
<input type="textfield" name="search" style="height:18px; font-size:10px;">
<a href="javascript:submit()">Search</a>
</form>
hij submit nietkijk ik ergens overheen?
werktquote:Op donderdag 2 maart 2006 13:10 schreef R-Mon het volgende:
[..]
Nogal, je spreekt submit() nu aan alsof het een normale functie is maar het is een methode van het form. Probeer dit: <a href="javascript:document.search.submit()">Search</a> Als dat niet werkt kan je eerst proberen je input een andere name te geven, deze is namelijk hetzelfde als die van je form.
Netter is document.forms["search"].submit();quote:Op donderdag 2 maart 2006 13:10 schreef R-Mon het volgende:
[..]
Nogal, je spreekt submit() nu aan alsof het een normale functie is maar het is een methode van het form. Probeer dit: <a href="javascript:document.search.submit()">Search</a> Als dat niet werkt kan je eerst proberen je input een andere name te geven, deze is namelijk hetzelfde als die van je form.
1 2 3 4 5 6 7 8 9 | //eventueel alle li's uit een container (ul) die een id heeft: document.getElementById("liContainer").getElementsByTagName("li"); for (i = 0; i < all_listItems.length; i++) { listItemName = all_listItems[i].name; if (listItemName.substring(0, 2) = "m_") { //maybe eerst nog checken of er wel een .name is en maybe moet die 2 wel een 1 zijn, ik ben net wakker } } |
Ja, je gebruikt javascript voor iets dat helemaal niet nodig is....quote:Op donderdag 2 maart 2006 13:00 schreef Desdinova het volgende:
[..stukje code voor een form met de submit in javascript ...]
hij submit nietkijk ik ergens overheen?
1 2 3 4 5 6 7 | enctype="multipart/form-data" name="search" id="IDattribuut_mag_nooit_alleen_een_getal_bevatten" action="index.php" method="get"> <input type="textfield" name="search" style="height:18px; font-size:10px;"> <button type="submit">Search</button> </form> |
1 2 3 | if (listItemName.substring(0, 2) = "m_") { |
1 2 3 | Bronbestand: file:///D:/09382409282/javascript.js Regel: 9 |
PHP en Javascript zijn compleet anders, de 'onveiligheid' bij PHP heeft te maken met bv code-injection e.d. en ja, daar is 'eval' nogal kwetsbaar voor ...quote:Op vrijdag 3 maart 2006 11:54 schreef Nevermind het volgende:
Ik weet dat php's eval zorgvuldig gebruikt moet worden ivm de veiligheid, maar hoe zit dat met javascripts eval? Kan dat op eenofandere manier misbruikt worden?
Niet overdrijven, ik weet prima het verschil tussen beide en heb al jaren ervaring met php. Er zit alleen goed in mijn hoofd gestampt "eval == evil", vandaar dat ik even navraag doe.quote:gewen jezelf liever af om te snel en te makkelijk PHP en Javascript te vergelijken
Hoe zit het met de ondersteuning van eval? Kan elke moderne browser daar mee omgaan?quote:Een tweede punt is echter dat er eigenlijk vrijwel nooit nut is om 'eval' te gebruiken bij javascript, en vrijwel iedere situatie waar iemand eval zou willen gebruiken, meestal veel effectiever met andere middelen gedaan kan worden (bv DOM en standaard collections...)
Ecmascript is een standaard (Ecma-262)... overigens voldoet bv Actionscript (van Flash) ook aan deze standaard, alswel naar ik meen applescript en is het toe te passen als programma interne taal in bv programma's als MM Dreamweaver en Adobe Photoshop...quote:Op vrijdag 3 maart 2006 12:07 schreef Nevermind het volgende:
Hoe zit het met de ondersteuning van eval? Kan elke moderne browser daar mee omgaan?
Ik ben dan ook zeker geen professioneel developerquote:Op vrijdag 3 maart 2006 12:16 schreef RM-rf het volgende:
[..]
Maar ik blijf erbij dat enkeleen slechte programmeur/scripter erop terugvalt, en er _altijd_ betere alternatieven zijn voor gebruik van 'eval'..
1 2 3 4 5 6 7 8 9 10 11 12 13 | var str = ""; // loop iedere 'split' van / for(i in a) { // loop .length -1 if (i != (a.length -1)) { // voeg de split toe + een / str = str + a[i] + "/" ; } } |
1 2 3 4 5 6 | var str = path.replace(/\\/g, '/'); // splitten op /, laatste verwijderen en weer joinen.. str = str.split('/'); delete str[str.length]; str = str.join |
1 2 | path = path.replace(/\/[^/]*$/, '');// Strip file name |
1 2 3 4 5 6 7 8 9 10 11 12 | { // type kan drop, create of insert zijn. var all_listItems = document.getElementsByTagName("input"); for (i = 0; i < all_listItems.length; i++) { listItemName = all_listItems[i].id; // is er ook een soort stristr (zoals php? want dan kan ik zoeken op [drop] of [create] of [insert] en daarop moet ik zoeken. } } |
probeerquote:Op zondag 5 maart 2006 10:49 schreef Chandler het volgende:
ik snap het nu.
Mooi dan heb ik natuurlijk weer de volgende, mijn projectje vodert namelijk al aardig!
Reeds ben ik bezig met een scriptje die checkboxjes van een bepaald type moet checken/unchecken.. nu zat ik dus met het idee
[ code verwijderd ]
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | { var all_listItems = document.getElementById("mysqldata").getElementsByTagName("input"); var str = ""; for (i = 0; i < all_listItems.length; i++) { if (all_listItems[i].type == "checkbox") { id = all_listItems[i].name; if (id.match(find)) { str += all_listItems[i].name + "\r\n"; } } } } |
1 2 3 4 | alert('bla[die]bla'.match('\\[die\\]')); // of match met een regexp als parameter alert('bla[die]bla'.match(/\[die\]/)) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | { var all_listItems = document.getElementById("mysqldata").getElementsByTagName("input"); var str = ""; for (i = 0; i < all_listItems.length; i++) { if (all_listItems[i].type == "checkbox") { id = all_listItems[i].name; if (id.match("\\[" + find + "\\]")) { id.checked = false; str += all_listItems[i].name + "\r\n"; } } } alert(str); } |
Dit is inderdaad het idee wat ik voor ogen had, ik loop alleen nog steeds vast. Ik blijf de melding krijgen:quote:Op woensdag 1 maart 2006 11:03 schreef Webby het volgende:
Je hebt ook getElementsByTagName()
Je kan dan in een globale variabele bijhouden hoeveel td's je hebt, of misschien in jou geval altijd de laatste selecteren dmv .length
Je krijgt dan iets in de trant van:
var myTable_all_tableCells = document.getElementById("myTable").getElementsByTagName("td");
var myTable_lastCell = myTable_all_tableCells[all_myTable_tableCells.length];
myTable_lastCell.innerHTML = displaySkillGroups();
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | function displaySkillGroups() { var skillGroups = new Array ("Choose skillgroup", "Atheletics", "Biotech", "Close Combat", "Conjuring", "Cracking", "Electronics", "Firearms", "Influence", "Mechanic", "Outdoors", "Sorcery", "Stealth", "Tasking"); document.write("<select name=\"playerClass\" id=\"playerClass\" onchange=\"addRow()\">"); for (i=0;i<skillGroups.length;i++) { document.write("<option value=\"" + skillGroups[i] + "\">" + skillGroups[i] + "</option>"); } document.write("</select>"); } //genereer nieuwe tabel rij function addRow() { var x=document.getElementById('skillGroups').insertRow(1); var y=x.insertCell(0); var myTable_all_tableCells = document.getElementById("skillGroups").getElementsByTagName("td"); var myTable_lastCell = myTable_all_tableCells[all_myTable_tableCells.length]; window.alert(myTable_lastCell); myTable_lastCell.innerHTML = displaySkillGroups(); //y.innerHTML="..."; } |
1 2 3 4 5 6 7 8 | var output = "<select> ..." for (i=0;i< skillGroups.length; i++) { output += "<option>.." } output += "</select>" return output } |
gelikt!quote:Op maandag 6 maart 2006 16:20 schreef RM-rf het volgende:
in plaats van de 'document.write' in displaySkillGroups;
plaats deze eens in een variabele en aan het eind van de functie return die variabele:
[ code verwijderd ]
'document.write' is enkel mogelijk tijdens het renderen van de pagina (of in het document.layers model tijdens het re-renderen van een layer)
1 2 3 4 5 | Bronbestand: http://localhost/persoonlijk/php2hexv2.5/phpv25# Regel: 251, Kolom: 28 Broncode: path = path.replace(/\/[^/]*$/, '');// Strip file name |
onChange?quote:Op donderdag 9 maart 2006 15:20 schreef Webby het volgende:
Ik zit met een input checkbox. Welk event is er wat fired bij checken van die box, zelfs mouseup fired te vroeg, dan is hij nog niet daadwerkelijk checked en onchange fired pas als je hem deselecteerd. Ik wil onCheck oid.
Kan dat?
Owja, das waar. Maar wat wil je precies doen dan dat precieze timing nodig heeft?quote:Op donderdag 9 maart 2006 15:33 schreef Webby het volgende:
onchange fired pas na deselecteren van de checkbox
1 |
1 2 | opener.document.forms['form'].elements[ myName ].value = "data"; |
moet je wel [] gebruiken achter de naam, anders wordt de waarde overschrevenquote:Op maandag 13 maart 2006 10:13 schreef Webby het volgende:
Zonder " wordt het als variabele geïnterpreteerd ipv. string
Waarom gebruik je eigenlijk een variabele naam die doet vermoeden dat het een array is, terwijl het een naam is?
Als je gewoon meerdere hidden inputs op een rij zet met dezelfde naam wordt het een array ...
ik weet niet of het sneller kan (en dit is een beetje omslachtige methode), maar zo zou ik het doen:quote:Op zaterdag 1 april 2006 20:16 schreef DionysuZ het volgende:
hee, klein vraagje: hoe kan ik met javascript in een string alle newlines omzetten naar <br />?
1 |
1 |
Load!-knop werkt niet, als ik m'n rechtermuismenu open krijg ik scrollbalken.quote:Op zondag 2 april 2006 21:21 schreef Chandler het volgende:
Mensen, willen jullie eens kijken of
http://www.bruggema.nl/php2hex/test12312231.html (het menu van stap 1 t/m stap6) werkt? qua javascript?
Tnx!!
ps heb het zelf al in ff 1.5.0.1 getest en daar werkt het en IE 6.0 ook
void(0) doet niets (void = leegte) in javascript. Het wordt vaak gebruikt in hyperlinks om ervoor te zorgen dat er geen nieuwe pagina wordt geladen, bijvoorbeeld:quote:Op dinsdag 4 april 2006 17:47 schreef R-Mon het volgende:
[..]
Vraagje van mezelf, wat is toch dat javascript:void(0) dat ik overal zie?
1 |
officieel mag je in de href geen javascript gebruiken. Ik doe dan altijd eenquote:Op dinsdag 4 april 2006 17:58 schreef JeRa het volgende:
[..]
void(0) doet niets (void = leegte) in javascript. Het wordt vaak gebruikt in hyperlinks om ervoor te zorgen dat er geen nieuwe pagina wordt geladen, bijvoorbeeld:
[ code verwijderd ]
1 |
Aha, zoiets dacht ik al.quote:Op dinsdag 4 april 2006 17:58 schreef JeRa het volgende:
[..]
void(0) doet niets (void = leegte) in javascript. Het wordt vaak gebruikt in hyperlinks om ervoor te zorgen dat er geen nieuwe pagina wordt geladen, bijvoorbeeld:
[ code verwijderd ]
Ik ook.quote:Op dinsdag 4 april 2006 19:03 schreef DionysuZ het volgende:
[..]
officieel mag je in de href geen javascript gebruiken. Ik doe dan altijd een
[ code verwijderd ]
zodat er ook geen nieuwe pagina wordt geladen (ook niet #)
dus zo deed je dat om te voorkomen dat je pagina weer terug naar top springt...quote:Op dinsdag 4 april 2006 19:03 schreef DionysuZ het volgende:
[..]
officieel mag je in de href geen javascript gebruiken. Ik doe dan altijd een
[ code verwijderd ]
zodat er ook geen nieuwe pagina wordt geladen (ook niet #)
Ook een zeer handige manier om te combineren met question dialogsquote:Op dinsdag 4 april 2006 19:26 schreef mschol het volgende:
[..]
dus zo deed je dat om te voorkomen dat je pagina weer terug naar top springt...
1 |
Alleen waarom zou je dan nog een link gebruiken?quote:Op dinsdag 4 april 2006 19:03 schreef DionysuZ het volgende:
[..]
officieel mag je in de href geen javascript gebruiken. Ik doe dan altijd een
[ code verwijderd ]
zodat er ook geen nieuwe pagina wordt geladen (ook niet #)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | <head> <title>Handel</title> <script> function countdown() { cl = document.getElementById("timer"); cl.innerHTML = cl.innerHTML == 0 ? changeNumbers() : cl.innerHTML-1; setTimeout("countdown()", 1000); } function changeNumbers() { var stockbied, callbied1, callbied2, callbied3, putbied1, putbied2, putbied3; document.getElementById("stockbied").innerHTML = stockbied = 28 + Math.floor(400*Math.random())/100; document.getElementById("stocklaat").innerHTML = stockbied + 0.01 + Math.floor(15*Math.random())/100; document.getElementById("callbied1").innerHTML = callbied1 = 1 + Math.floor(400*Math.random())/100; document.getElementById("callbied2").innerHTML = callbied2 = callbied1 - 0.05 - Math.floor(40*Math.random())/100; document.getElementById("callbied3").innerHTML = callbied3 = callbied2 - 0.05 - Math.floor(40*Math.random())/100; document.getElementById("putbied1").innerHTML = putbied1 = 1 + Math.floor(400*Math.random())/100; document.getElementById("putbied2").innerHTML = putbied2 = putbied1 - 0.05 - Math.floor(40*Math.random())/100; document.getElementById("putbied3").innerHTML = putbied3 = putbied2 - 0.05 - Math.floor(40*Math.random())/100; for (i=1; i<=3; i++) { document.getElementById("calllaat"+i).innerHTML = eval("callbied"+i) + 0.01 + Math.floor(15*Math.random())/100; document.getElementById("putlaat"+i).innerHTML = eval("putbied"+i) + 0.01 + Math.floor(15*Math.random())/100; } return 30; } </script> </head> <body onload="countdown()"> <table border="1"> <tr align="center"> <td colspan="5">Stock</td> </tr> <tr> <td colspan="2">Bied</td><td></td><td colspan="2">Laat</td> </tr> <tr> <td id="stockbied" colspan="2">0</td><td></td><td id="stocklaat" colspan="2">0</td> </tr> <tr> <td colspan="5"> </td> </tr> <tr align="center"> <td colspan="2">Call</td><td id="timer">0</td><td colspan="2">Put</td> </tr> <tr> <td>Bied</td><td>Laat</td><td>Uitoefenprijs</td><td>Bied</td><td>Laat</td> </tr> <tr> <td id="callbied1">0</td><td id="calllaat1"></td><td>28</td><td id="putbied1"></td><td id="putlaat1"></td> </tr> <tr> <td id="callbied2">0</td><td id="calllaat2"></td><td>30</td><td id="putbied2"></td><td id="putlaat2"></td> </tr> <tr> <td id="callbied3">0</td><td id="calllaat3"></td><td>32</td><td id="putbied3"></td><td id="putlaat3"></td> </tr> </table> </body> </html> |
Dat komt door de manier waarop floating points werken. Floating point getallen zijn getallen die geen letterlijke representatie van een fractioneel getal opslaan, maar een benadering. Af en toe krijg je dat soort afrondingsfouten die je makkelijk kunt opvangen door de getallen bijvoorbeeld op twee decimalen af te kappen.quote:Op donderdag 6 april 2006 21:08 schreef mrbombastic het volgende:
Ik ben wat aan het programmeren in Javascript en daarvoor heb ik de floor() functie nodig uit de Math class.
Alleen gaat dit niet helemaal goed om duistere redenen. Ipv bijv. 2.78 krijg ik af en toe 2.7800000000003 of 2.777777777795 oid.
Wie weet waar dit aan ligt?
[ code verwijderd ]
Nee hoor, dat kun je slimmer aanpakken.quote:Op donderdag 6 april 2006 23:03 schreef mrbombastic het volgende:
Ok, ik gebruik nu de functie toFixed() maar. Nadeel hiervan is dat je variabelen strings worden en je die dus weer moet gaan parsefloaten.
Je hebt inderdaad gelijk, maar als ik mijn aantal regels niet wil verdubbelen moet ik het zo doen:quote:Op donderdag 6 april 2006 23:05 schreef JeRa het volgende:
[..]
Nee hoor, dat kun je slimmer aanpakken.
Alle berekeningen die je doet rond je niét af en hou je dus gewoon als floating points. Op het moment dat je iets wilt laten zien aan de gebruiker, gebruik je toFixed()die sla je dan eventueel op in een andere variabele, zolang je de bronvariabelen maar niet aanpast.
1 2 | document.getElementById("stocklaat").innerHTML = (stockbied + 0.01 + 0.15*Math.random()).toFixed(2); |
Niet erg overzichtelijk. Als je dat over een tijdje terug leest dan lees le er gegarandeerd overheen.quote:Op donderdag 6 april 2006 23:41 schreef mrbombastic het volgende:
Weet eigenlijk niet wat men vindt van een expressie met daarin een assignment.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function movepic(img_name,id,foto) { document[img_name].src="images/aanbod/" +id+ "/klein/foto" +foto+ ".png"; document.links.popup.onclick="javascript:window.open('http://het adres.nl/naar/" +id+ "/groot/foto" +foto+ ".png','Foto', 'width=700,height=500,resizable,'); return false"; } </script> <a name="popup" href="#" onclick="javascript:window.open('http://het adres.nl/naar/2/groot/foto1.png','Foto', 'width=700,height=500,resizable,'); return false"> <img src="images/aanbod/2/klein/foto1.png" alt="" name="grootplaatje" width="175" height="131" border="0" /> </a> <a href="#" onmouseover="movepic('grootplaatje','2','1')"> <img src="images/aanbod/2/klein/foto1.png" width="41" height="36" border="0" alt="foto1" /> </a> <a href="#" onmouseover="movepic('grootplaatje','2','2')"> <img src="images/aanbod/2/klein/foto2.png" width="41" height="36" border="0" alt="foto2" /> </a> <a href="#" onmouseover="movepic('grootplaatje','2','3')"> <img src="images/aanbod/2/klein/foto3.png" width="41" height="36" border="0" alt="foto3" /> </a> |
1 2 3 4 5 6 7 8 9 10 | function PopLink(p_el) { var url = p_el.href; if (url) { var win = window.open(url, 'PopLink', 'resizable=yes,width=400,height=300'); if (win) win.focus(); } return false; } </script> |
1 2 3 | onclick="return PopLink(this)"><img src="http://www.google.com/logos/Logo_25wht.gif" alt="Google"></a> |
dit is idd beterquote:Op zaterdag 22 april 2006 18:41 schreef SuperRembo het volgende:
Ik weet niet wat je nou precies wil.
Een beetje vreemd om in elke mouseover de onclick te zetten. Je hoort ook geen "javascript:" in onclick/onmouseover events. document[img_name].src werkt niet in firefox.
Een nette manier om popup links te maken:
[ code verwijderd ]
[ code verwijderd ]
1 2 3 | Bronbestand http://fok.chillosophy.nl/layout3.html Regel 236 |
1 |
Daarom hebben ze tevens een idquote:Op dinsdag 25 april 2006 11:09 schreef Scorpie het volgende:
je moet ze geen name geven, maar een id. Daarom heet het ook ElementById
OMFG!quote:Op dinsdag 25 april 2006 12:26 schreef Webby het volgende:
Maar je hebt de td met de iframes het id "tabbox" en daar zet je vervolgens via addTab html in welke geen iframes bevat, waardoor frame0 helemaal niet bestaat, plaats je id eens 1 td omhoog
Omdat ik een cssnewbie benquote:Op dinsdag 25 april 2006 12:38 schreef Webby het volgende:
En als je zonodig de pseudoclass :hover wilt gebruiken, waarom gebruik je dan gaan a tags die je met style display:block vormt ?
Geef eens de kortst mogelijke code waarmee je dit probleem hebtquote:Op maandag 1 mei 2006 21:27 schreef Swetsenegger het volgende:
Korte vraag
ik een var betaling gedeclareerd.
Als ik die met een document.write ergens in mijn html zet, komt deze ook netjes terug.
Maar ik krijg hem niet ge-alert in een onclick wat ik ook probeer, ik krijg of niets terug of ik krijg[ object nodelist] als alert terug
Eh...quote:Op maandag 1 mei 2006 21:28 schreef JeRa het volgende:
[..]
Geef eens de kortst mogelijke code waarmee je dit probleem hebtkan goed zijn dat het een scope-probleem is bijvoorbeeld.
1 |
Die alert is javascript en betaling ook, dus waarom plak je het als strings aan elkaar?quote:Op maandag 1 mei 2006 21:33 schreef Swetsenegger het volgende:
Een regel lager staat een input type="button" welke op een onClick="alert(''+betaling+'');" moet doen.
En die geeft een object.
betaling is een variabele en alert is een functie. Ook in javascript horen vars buiten quotes.quote:Op maandag 1 mei 2006 21:37 schreef Litpho het volgende:
[..]
Die alert is javascript en betaling ook, dus waarom plak je het als strings aan elkaar?
Zou onClick="alert( betaling );" niet het gewenste resultaat moeten opleveren?
1 2 3 4 5 | <td><input type="radio" name="betaling" onChange="setGoal('test')" />methode 1 <input type="radio" name="betaling" onChange="setGoal('test2')" />methode 2 </td> </tr> |
1 2 3 4 5 6 7 8 9 | <td><input type="radio" name="betaling" onChange="setGoal('test')" />methode 1 <input type="radio" name="betaling" onChange="setGoal('test2')" />methode 2 </td> </tr> <tr> <td><input type="button" value="Bestellen" onClick="alert(betaling);" /> </td> </tr> |
Doe je met php dan ook het volgende?quote:Op maandag 1 mei 2006 22:44 schreef Swetsenegger het volgende:
[..]
betaling is een variabele en alert is een functie. Ook in javascript horen vars buiten quotes.
1 2 | echo(''.$test.''); |
1 2 3 4 5 6 7 8 9 10 11 12 | <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="PSPad editor, www.pspad.com"> <title></title> <script type="text/javascript" src="drag.js"></script> </head> <body> <div id="drag" style="position: absolute; left: 100px; top: 100px; height: 200px; width: 200px; background-color: #fff000;"></div> </body> </html> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | var x = 0; var y = 0; if (!ie) document.captureEvents(Event.MOUSEMOVE) document.onmousedown = set_drag; document.onmouseup = reset_drag; function set_drag(){ document.onmousemove = drag; } function reset_drag(){ document.onmousemove = null; } function drag(e) { var div = document.getElementById('drag'); if (ie) { x = event.clientX + document.body.scrollLeft; y = event.clientY + document.body.scrollTop; } else { x = e.pageX; y = e.pageY; } var width = parseInt(div.style.width); var height = parseInt(div.style.height); //var xin = (x - (parseInt(div.style.left))); //var yin = (y - (parseInt(div.style.top))); x = (x < 0) ? 0 : x - (width / 2); y = (y < 0) ? 0 : y - (height / 2); div.style.top = y; div.style.left = x; return true; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | public class Class1 extends TekenApplet { double hoek; public void initialiseer() { maakAnimatieMogelijk(); achtergrondkleur("blauw"); } public void tekenprogramma() { links(hoek); vierkant(100); links(hoek); vierkant(50); penUit(); vooruit(75); rechts(90); vooruit(25); rechts(90); penAan(); links(hoek); vierkant(50); } void vierkant(double z) { penUit(); vooruit(z/2); rechts(90); vooruit(z/2); vulAan("oranje"); rechts(90); vooruit(z); rechts(90); vooruit(z); rechts(90); vooruit(z); rechts(90); vooruit(z); vulUit(); } public void animatie() { while(animatieLopend()) { hoek = hoek + .5; tekenOpnieuw(); } } } |
java != javascriptquote:Op woensdag 7 juni 2006 13:57 schreef joupee het volgende:
Ik ben bezig met een beetje java, maar ik kom er niet uit.
Het is de bedoeling dat er een vierkant ronddraait en dat er dan op de hoekpunten kleinere vierkantjes ronddraaien. De code zit er tot nu toe als volgt uit:
[ code verwijderd ]
Het probleem nu is dat de kleinere vierkantjes aan elkaar gekoppeld zitten en ik heb geen flauw idee hoe ik dit kan verhelpen...
Iddquote:Op woensdag 7 juni 2006 14:04 schreef mschol het volgende:
[..]
java != javascript
dus ik zou als ik jou was een apert topic openen
hmm.. dus echt een dummie he, ik snap niet eens wat je hiermee bedoeltquote:Op woensdag 7 juni 2006 14:04 schreef mschol het volgende:
[..]
java != javascript
dus ik zou als ik jou was een apert topic openen
dit topic gaat over javascript, een scripting taal voor webpaginas, wat totaal iets anders is als Java, wat een programmeertaal is. Zoek even verder en je zult een centraal Java topic vindenquote:Op woensdag 7 juni 2006 14:14 schreef joupee het volgende:
[..]
hmm.. dus echt een dummie he, ik snap niet eens wat je hiermee bedoelt![]()
oke.. toch bedanktquote:Op woensdag 7 juni 2006 14:19 schreef ralfie het volgende:
[..]
dit topic gaat over javascript, een scripting taal voor webpaginas, wat totaal iets anders is als Java, wat een programmeertaal is. Zoek even verder en je zult een centraal Java topic vinden
Iemand die mijn probleem snapt en kan helpen?quote:Op woensdag 7 juni 2006 06:26 schreef fokME2 het volgende:
Ik wil graag een divje kunnen draggen, op het moment kan ik de div 'vastpakken' en gaat slepen.
Als je met het divje gaat slepen, dan blijft je muis altijd in het midden van de div. Ik wil echter dat de muis op de plaats blijft waar ik de div 'vastpakte'.
html:
[ code verwijderd ]
javascript:
[ code verwijderd ]
Ik heb het al geprobeerd door ipv de helft van de width van de div, de 'xin' van de x af te trekken. Dit klopt echter niet, want:
x - parsint(div.style.left) = x - xin
xin = parseint(div.style.left), dus dan wordt er niet meer 'gedragged'.
Iemand een oplossing voor mijn probleem?![]()
quote:Op woensdag 7 juni 2006 15:06 schreef fokME2 het volgende:
[..]
Iemand die mijn probleem snapt en kan helpen?![]()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="Microsoft FrontPage 4.0"> <title></title> <script type="text/javascript" src="drag.js"></script> </head> <body> <div id="drag" onmousedown="startdragging(event)" onmouseup="stopdragging()" style="position: absolute; left: 100px; top: 100px; height: 200px; width: 200px; background-color: #fff000;"></div> <script type="text/javascript"> function stopdragging() { document.onmousemove=null; } var xrel=0; var yrel=0; function startdragging(e) { var div=document.getElementById('drag'); var x=0; var y=0; if (document.all) { x = event.clientX + document.body.scrollLeft; y = event.clientY + document.body.scrollTop; } else { x = e.pageX; y = e.pageY; } xrel=x-parseInt(div.style.left); yrel=y-parseInt(div.style.top); document.onmousemove=drag; } function drag(e) { var div = document.getElementById('drag'); if (document.all) { x = event.clientX + document.body.scrollLeft; y = event.clientY + document.body.scrollTop; } else { x = e.pageX; y = e.pageY; } div.style.left=x-xrel; div.style.top=y-yrel; } </script> </body> </html> |
Wat is je probleem daarmee? Eventueel voeg je het later dmv. javascript toe aan het elementquote:Op woensdag 7 juni 2006 16:09 schreef fokME2 het volgende:
Ik wilde juist vermijden om met onmousedown en onmouseup in de html te werken, maar volgens mij zit er niet veel anders op?
cache. daar kun je omheen door een random waarde mee te sturenquote:Op woensdag 7 juni 2006 15:27 schreef mschol het volgende:
ik zit nou al even te klooien met ajax (wat mij opzich wel een leuke techniek lijkt)
en ik wilde eigenlijk weten of mensen hier nog goede (duidelijke) nederlandse tutorials hierover weten..
en weet iemand wat ik kan doen tegen het feit dat wanneer ik op een link klik in IE dat de eerste ker hij wel netjes de pagina veranderd maar de 2de klik op een link doet ie niks?
hmmm oke ga ik even naar kijken...quote:Op woensdag 7 juni 2006 17:59 schreef DionysuZ het volgende:
[..]
cache. daar kun je omheen door een random waarde mee te sturen(of een no-cache header, maar dat heb ik nog niet geprobeerd)
1 |
ik heb nl. met AJAX een chat ingebouwd in een site. Alles werkte mooi in firefox maar ik kreeg klachten dat het in IE niet werkte. Toen ik keek zag ik dat de betreffende div wel opnieuw ingevuld werd met een nieuwe innerHTML, maar dat de code die erin kwam hetzelfde bleef. Een random (idd met math.random()) toegevoegd en alles werkte mooi.quote:Op woensdag 7 juni 2006 18:08 schreef mschol het volgende:
[..]
hmmm oke ga ik even naar kijken...
--edit--
[ code verwijderd ]
ik heb het stukje code met Math.random() toegevoegd maar helaas helpt dit niet..
een no-cache header kan ik nog even naar kijken..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | { try { xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { } xmlhttp.onreadystatechange = function() { if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) { document.getElementById(divname).innerHTML = xmlhttp.responseText; } } xmlhttp.open("GET", dest); xmlhttp.send(null); } function timedCount() { var t; loadurl('chat.php?p=' + Math.floor(Math.random()*50000), 'chatmsgs'); t=setTimeout("timedCount()",3000); } |
ik ga eens kijken wat ik darmee kan..quote:Op woensdag 7 juni 2006 18:22 schreef DionysuZ het volgende:
Mijn (werkende) code:
[ code verwijderd ]
ik ga dat in mijn geval ook even proberenquote:Op woensdag 7 juni 2006 18:27 schreef JeRa het volgende:
De netste oplossing lijkt me toch de juiste headers meesturen in het PHP-bestand, want zo'n random waarde is wel erg hackish
Van deze pagina:
[ code verwijderd ]
en het werktquote:Op woensdag 7 juni 2006 18:32 schreef DionysuZ het volgende:
[..]
ik ga dat in mijn geval ook even proberentnx
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | function createrequestobject() { req = false; // branch for native XMLHttpRequest object if(window.ActiveXObject) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} } } else if(window.XMLHttpRequest) { req = new XMLHttpRequest(); } if( !req) { return false; } return req; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | function sndreq(action) { if(http) { http.onreadystatechange = handleresponse; http.open('GET','data.php?id='+ action, true); http.send(null); } } function handleresponse() { if (http.readyState == 4) { // only if "OK" if (http.status == 200) { //things to do for correct display display(); return true; } else { alert("There was a problem retrieving the data:\n" + http.statusText); } } } function display() { document.getElementById('content').innerHTML = http.responseText; return true; } |
1 |
Okok, doe het wel metquote:Op woensdag 7 juni 2006 17:13 schreef JeRa het volgende:
[..]
Wat is je probleem daarmee? Eventueel voeg je het later dmv. javascript toe aan het element
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | var yrel = 0; var obj = null; function startdragging(e, id){ var x = 0; var y = 0; obj = document.getElementById(id); if(document.all){ x = event.clientX + document.body.scrollLeft; y = event.clientY + document.body.scrollTop; } else { x = e.pageX; y = e.pageY; } xrel = x - parseInt(obj.style.left); yrel = y - parseInt(obj.style.top); obj.style.cursor = 'move'; document.onmousemove = drag; } function stopdragging(){ obj.style.cursor = 'default'; document.onmousemove = null; } function drag(e) { // var obj = document.getElementById('drag'); if (document.all) { x = event.clientX + document.body.scrollLeft; y = event.clientY + document.body.scrollTop; } else { x = e.pageX; y = e.pageY; } obj.style.top = y - yrel; obj.style.left = x - xrel; return true; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="PSPad editor, www.pspad.com"> <style type="text/css"> <!-- .cholder{ position: absolute; width: 200px; background-color: #fff000; cursor: default; } --> </style> <title></title> <script type="text/javascript" src="drag.js"></script> </head> <body> <div id="drag" class="cholder" onmousedown="startdragging(event, 'drag');" onmouseup="stopdragging();" style="left: 100px; top: 100px;">a</div> <div id="draga" class="cholder" onmousedown="startdragging(event, 'draga');" onmouseup="stopdragging();" style="left: 300px; top: 300px;">b</div> </body> </html> |
Ik weet het niet zeker, maar moet je voor een nieuwe request niet een nieuw XMLHttpRequest object aanmaken?quote:Op woensdag 7 juni 2006 20:56 schreef mschol het volgende:
niemand een idee voor mijn probleem?
misschien een andere stuk code?
nog eff verder gezocht en lijkt aan de activexObject te liggen oid:quote:Op woensdag 7 juni 2006 21:14 schreef JeRa het volgende:
[..]
Ik weet het niet zeker, maar moet je voor een nieuwe request niet een nieuw XMLHttpRequest object aanmaken?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | { req = false; // branch for native XMLHttpRequest object if(window.ActiveXObject) { var types = [ 'MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP' ]; for (var i = 0; i < types.length; i++) { try { return new ActiveXObject(types[i]); } catch(e) {} } return null; } else if(window.XMLHttpRequest) { req = new XMLHttpRequest(); } if( !req) { return false; } return req; } |
Dit vind ik nog steeds de fraaiste oplossing:quote:Op woensdag 7 juni 2006 21:23 schreef mschol het volgende:
[..]
nog eff verder gezocht en lijkt aan de activexObject te liggen oid:
gebruik nu:
[ code verwijderd ]
en dit werkt ..
geen idee wat het nou was...
nof wel eff testen oinder FF (zodat ik niet die vernaggeld heb)
1 2 3 4 5 6 7 8 9 10 11 12 | window.XMLHttpRequest=function(){ var types=['Microsoft.XMLHTTP','MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP']; for (var i=0;i<types.length;i++){ try{ return new ActiveXObject(types[i]); } catch(ex){}; }; return undefined; }; }; |
1 |
eigenlijk is ie alleen maar wat korter dan wat ik heb, wat ik er zo van zie..quote:Op woensdag 7 juni 2006 21:47 schreef SuperRembo het volgende:
[..]
Dit vind ik nog steeds de fraaiste oplossing:
[ code verwijderd ]
Dan kan je gewoon zo een nieuwe instantie van het XMLHttpRequest object maken:
[ code verwijderd ]
(met dank aan crisp)
1 |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |