quote:Op maandag 11 december 2006 23:39 schreef Litpho het volgende:
[..]
Geef je aan de functie alleen de buttonnaam mee, of het buttonobject (evt. opgehaald met iets als document.getElementById)?
Deze OP: http://wiki.fok.nl/index.php/OP/Javascriptquote:Op maandag 11 december 2006 23:41 schreef mschol het volgende:
[..]
alleen button naam m.b.v. this.name
1 2 3 4 5 6 7 | { var btn = document.getElementById(button); newWindow = window.open('add.php?path='+place+'&file='+file,"add_file","status=0,menubar=0,height=250,width=100,top=60px,left=100px"); btn.disabled=true; newWindow.focus(); } |
ik loop altijd met dit verschil te vechten, en nog steeds vergeet ik hetquote:Op maandag 11 december 2006 23:46 schreef Litpho het volgende:
Ah. Je probeert een property (disabled) te veranderen van een buttonobject maar in plaats daarvan zet je een property (disabled) van een stringobject.
Kijk of je in je HTML-code dezelfde buttonnaam ook als id kan opnemen en neem in je javascript de volgende code op:
[ code verwijderd ]
1 2 3 | button.disabled = true; } |
1 |
Er was een reden dat ik erbij zette dat je de naam ook als id-waarde moest opnemen in je HTMLquote:Op dinsdag 12 december 2006 00:02 schreef SuperRembo het volgende:
En de name doorgeven en dan getElementById() gebuiken lijkt me ook niet handig. Misschien dat het in IE werkt, maar in FF uiteraard niet (en terecht!).
name doorgeven werkt ook niet, id doorgeven daarin tegen werkt vlekkeloos..quote:Op dinsdag 12 december 2006 00:02 schreef SuperRembo het volgende:
Waarom de name of id doorgeven als je de button zelf al kent?
[ code verwijderd ]
[ code verwijderd ]
En de name doorgeven en dan getElementById() gebuiken lijkt me ook niet handig. Misschien dat het in IE werkt, maar in FF uiteraard niet (en terecht!).
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 66 67 68 | var element = document.getElementById(objectId); for (var x = 1; element.childNodes.length > 0; x++){ element.removeChild(element.firstChild); } for(var i = 1; i <= numberOfElements; i++){ createNewElement(objectId, "", "input", {type: "file", name: "uploadFile[]"}, ""); } } function createNewElement(parent, beforeWhat, name, attrs, text) { var parent = document.getElementById(parent); try { /* IE fix for input elements */ if (attrs){ var attributes = "<" + name +" "; for (key in attrs) { attributes += key +"=""+ attrs[key] +"" "; } attributes += ">"; } var e = document.createElement(attributes); } catch (element) { } if (!e || e.nodeName != type.toUpperCase()) { var e = document.createElement(name); if (attrs) { for (key in attrs) { switch(key){ case "class": e.className = attrs[key]; break; case "id": e.id = attrs[key]; break; case "name": break; default: e.setAttribute(key, attrs[key]); } } } } if (text) { e.appendChild(document.createTextNode(text)); } if(beforeWhat != ""){ var beforeWhat = document.getElementById(beforeWhat); parent.insertBefore(e, beforeWhat); } else{ parent.appendChild(e); } } |
1 |
1 |
dat was FOK!, niet ikquote:Op zaterdag 30 december 2006 23:38 schreef SuperRembo het volgende:
Hier heb je lopen klooten met quotjes:
[ code verwijderd ]
dat zal hem wellicht zijn iddquote:Hier bestaat 'type' niet, zal waarschijnlijk iets met attrs['type'] moeten zijn
[ code verwijderd ]
Persoonlijk vind ik browsersniffing nog ranziger en onderhoudsonvriendelijkerquote:Beetje lomp om zo'n heel blok in een try/catch te zetten terwijl je makkelijk kan bepalen of je met IE te maken hebt. Dan hoeven andere browsers niet onnodig die code uit te voeren die toch niet gaat werken.
persoonlijke smaakquote:En wat een ranzige uitlijning van je code
Leuke linkquote:
vind ik ook maar das zoals eerder gezegd persoonlijke smaak,quote:Op zaterdag 30 december 2006 23:38 schreef SuperRembo het volgende:
En wat een ranzige uitlijning van je code
1 2 3 4 5 6 7 8 9 10 11 12 | var oldBodyText, newBodyText, reg; oldBodyText = document.body.innerHTML; reg = /<abbr([^>]*)>([^<]*)</abbr>/g; newBodyText = oldBodyText.replace(reg, '<abbr $1><span class="abbr" $1>$2</span></abbr>'); document.body.innerHTML = newBodyText; } window.onload = function(){ styleAbbr() } |
1 |
1 2 3 4 5 6 7 8 | <script type="text/javascript"> window.onload = function() { var b = document.body; b.innerHTML = b.innerHTML.replace(/<abbr([^>]*)>([^<]*)<\/abbr>/gi, '<abbr $1><span class=\"abbr\" $1>$2</span></abbr>'); } </script> <![endif]--> |
quote:<p id="player1881">
<a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see this player.
</p>
<script type="text/javascript">
var FO = {
movie:"player.swf",
width:" 200" ,
height:"200",
majorversion:"7",
build:"0",
bgcolor:"#FFFFFF",
flashvars:"file=/lynx/uploads/Flash/test.flv&showdigits=true&backcolor=0xABD7FE&showicons=true&image=bla.jpg"
};
UFO.create(FO, "player1881");
</script>
Niet al te ongeduldig doen he.quote:
Met een cookie?quote:Op woensdag 7 februari 2007 19:50 schreef Chandler het volgende:
Leuke vraag denk ik:
Stel ik wil een POPUP op een website en deze popup wil ik maar 1x laten zien! nu hebben genoeg mensen een popup blokker dus als mensen de pagina reloaden dan krijgen ze de popup niet meer te zien. Nu wil ik alleen de popup laten verdwijnen als de popup daadwerkelijk is geopend.. hoe realiseer ik dit?
Je kunt de popup het koekje laten bakkenquote:Op donderdag 8 februari 2007 09:25 schreef Chandler het volgende:
Cookie wordt toch ook aangemaakt wanneer de popup zich niet laat zien?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function popUp() { day = new Date(); id = day.getTime(); window['page'+id] = window.open('popback1.html', id , 'toolbar=0,scrollbars=1,location=0,statusbar=1,menubar=0,resizable=0'); } </script> <form method="post" name="userinfo"> <input type="text" name="name"><br/> <input type="text" name="cijfer"> - <a href="#" onClick="javascript:popUp();">Select</a><br/> <input type="submit" name="send" value="Verstuur"> </form> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function returnVariable(formName, fieldName, content) { opener.document.forms[formName].elements[fieldName].value = content; } function wclose() { window.close(); } </script> <form name="cijfertjes"> <input type="text" name="cijfer"> <input type="submit" name="Verzend" onclick="returnVariable('userinfo','cijfer', this.form.elements['cijfer'].value); wclose();"> </form> |
1 2 3 | var returnvar='cijfer'; ...window.open('popback1.html?returnvar='+returnvar... |
1 2 | onclick=returnvariable(opener.returnform, opener.returnvar, this.form.elements['cijfer'].value)" |
1 2 3 | var returnform='userinfo'; var returnvar='cijfer'; |
1 2 3 4 5 6 7 8 9 10 11 12 | function colPalet(value) { day = new Date(); id = day.getTime(); var retvalue = value; window['page'+id] = window.open('./layout/layout_colors.html?varname=' + value, id , 'width=300,height=200,toolbar=0,scrollbars=1,location=0,statusbar=1,menubar=0,resizable=0'); } </script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | function returnVariable(fieldName, content) { opener.document.forms['colortable'].elements[fieldName].value = content; } function wclose() { window.close(); } function SendColor(value) { alert(opener.retvalue); returnVariable(opener.varname, value) } </script> <MAP name=map_webpal> <!--- Row 1 ---> <AREA shape=RECT coords=2,2,18,18 href="javascript:SendColor('#330000')"> ... etc |
1 |
1 2 3 4 5 6 7 | var newdate = new Date(currentdate.substring(6,10), currentdate.substring(3,5) - 1, currentdate.substring(0,2)); newdate.setTime(newdate.getTime() - 86400000); newday = newdate.getDate(); newmonth = newdate.getMonth() +1; newyear = newdate.getFullYear(); changevalue(newday + "-" + newmonth + "-" + newyear,'chosendate'); |
1 2 | if (newmonth<=9) newmonth = "0" + newmonth; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | var currentdate = document.getElementById('chosendate').value; var newdate = new Date(currentdate.substring(6,10), currentdate.substring(3,5) - 1, currentdate.substring(0,2)); if (dir == 'left') newdate.setTime(newdate.getTime() - 86400000); else if (dir == 'right') newdate.setTime(newdate.getTime() + 86400000); newday = newdate.getDate(); if (newday<=9) newday = "0" + newday; newmonth = newdate.getMonth() +1; if (newmonth<=9) newmonth = "0" + newmonth; newyear = newdate.getFullYear(); changevalue(newday + "-" + newmonth + "-" + newyear,'chosendate'); } |
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 | Converts the date to string using provided formatting. %D = full date (%d/%m/%Y) %T = full time (%H:%i:%s) %Y = year (4 digits) %y = year (2 digits) %m = month (01 - 12) %d = day (01 - 31) %H = hours (01 - 24) %h = hours (01 - 12) %i = minutes (01 - 59) %s = seconds (01 - 59) %A = AM/PM %% = % */ Date.prototype.format = function(format) { format = format.replace(/%D/g, "%d/%m/%Y"); format = format.replace(/%T/g, "%H:%M:%S"); format = format.replace(/%Y/g, this.getFullYear()); format = format.replace(/%y/g, (this.getFullYear() % 100).toString().padLeft(2, '0')); format = format.replace(/%m/g, (this.getMonth () + 1).toString().padLeft(2, '0')); format = format.replace(/%d/g, this.getDate().toString().padLeft(2, '0')); format = format.replace(/%H/g, this.getHours().toString().padLeft(2, '0')); format = format.replace(/%h/g, ((this.getHours() + 11) % 12 + 1)); format = format.replace(/%i/g, this.getMinutes().toString().padLeft(2, '0')); format = format.replace(/%s/g, this.getSeconds().toString().padLeft(2, '0')); format = format.replace(/%A/g, (this.getHours() < 12 ? "AM" : "PM")); format = format.replace("%%", "%"); return format; } /* Pads a string on the left to a certain length with another string. */ String.prototype.padLeft = function(length, padding) { if (padding == '' || padding == null) padding = ' '; var result = this; var n = (length - this.length); if (n > 0) { while (padding.length < n) { padding += padding; } result = padding + result; result = result.substr(length - result.length); } return result; } |
1 2 3 | var s = d.format('%D %T'); alert(s); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <head> <title>test</title> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <script type="text/javascript"> document.getElementById('display').innerHTML= 'test'; </script> </head> <body> <div id="display" name="display"> leeg </div> </body> </html> |
Ik begrijp niet wat ik fout doe?quote:document.getElementById('display') has no properties
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <head> <title>test</title> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <script type="text/javascript"> function test(){ document.getElementById('display').innerHTML= 'test'; } </script> </head> <body onload="test()"> <div id="display" name="display"> leeg </div> </body> </html> |
Dit is de versimpelde versie, hij wordt aangeroepen door een functie die na een submit wordt aangeroepen.quote:Op dinsdag 27 februari 2007 16:08 schreef Geqxon het volgende:
Zo uit mijn hoofd zou ik zeggen dat het niet werkt omdat het javascript uitgevoerd wordt nog voordat de div "display" op het scherm getekend is / geinitialiseerd is. Misschien er een functie van maken, en die in de onload gooien?
1 |
1 2 3 4 5 6 7 | { var fso = new ActiveXObject("Scripting.FileSystemObject"); var FileObject = fso.OpenTextFile("C:\Temp\PimFile.txt", 2, true,0); // 8=append, true=create if not exist, 0 = ASCII FileObject.write(sText) FileObject.close() } |
1 2 | inhoud.replace("n","rn"); |
nee met document.naam.valuequote:Op woensdag 28 februari 2007 09:10 schreef Geqxon het volgende:
En hoe roep je sText aan, met een "this.value" ?
Als workaround zou je kunnen werken met een string replace:
[ code verwijderd ]
1 |
quote:Op woensdag 28 februari 2007 09:16 schreef Swetsenegger het volgende:
hij kan ik trouwens een string aanvullen met 0'en tot een bepaalde lengte?
1 2 3 4 5 6 7 8 | var teststring = 'jan'; var padlength = 20; var stringlength = teststring.length; for (var i = 0; i < (padlength - stringlength); i++){ teststring += pad; } |
Ah ok, er is geen standaard functie dusquote:Op woensdag 28 februari 2007 09:25 schreef Geqxon het volgende:
[..]
[ code verwijderd ]
Zo uit mijn hoofd, moet het nog even debuggen. Helaas heeft javascript niet een soort van str_pad (string pad), in ieder geval niet voor zover ik dat kan zien.
/edit: Denkfoutje gefixt.
1 2 3 4 5 6 7 | var teststring = 'jan'; var padlength = 20; while (teststring.length < padlength){ teststring += pad; } |
1 2 3 4 5 6 7 | { if (char==null) char='_'; var t=this; while(t.length<len) t+=char; return t; }; |
1 2 3 | document.write(str.pad(10,'x')); //writes halloxxxxx; document.write(str.pad(10)); //writes hallo_____; |
Dit is zeker handig zeg!quote:Op woensdag 28 februari 2007 10:38 schreef ralfie het volgende:
[ code verwijderd ]
krijgen je strings een handige pad functie erbij
[ code verwijderd ]
Altijd makkelijk als je zoiets vaker moet gebruiken
Default padden met een underscore vind ik een beetje vreemd (is natuulijk makkelijk aan te passen). Als de padding langer is dan 1 teken dan klopt de lengte niet altijd. Als je veel moet padden kan ie wel eens langzaam worden.quote:Op woensdag 28 februari 2007 10:38 schreef ralfie het volgende:
[ code verwijderd ]
krijgen je strings een handige pad functie erbij
[ code verwijderd ]
Altijd makkelijk als je zoiets vaker moet gebruiken
*bekijkt code*quote:Op woensdag 28 februari 2007 13:56 schreef SuperRembo het volgende:
Als de padding langer is dan 1 teken dan klopt de lengte niet altijd.
als je padding bijv 3 tekens is, wordt de uiteindelijke string langer als wat ie had moeten zijn, bijquote:Op woensdag 28 februari 2007 15:13 schreef Swetsenegger het volgende:
[..]
*bekijkt code*
die snap ik niet?
1 2 3 | str.pad(10,"hoi") // geeft hallohoihoi, wat 11 tekens is |
Ik had er nog niet eens bij nagedacht dat je padding langer zou willen maken dan 1 teken, maar ja... dan heb je inderdaad een probleem.quote:Op woensdag 28 februari 2007 15:41 schreef ralfie het volgende:
[..]
als je padding bijv 3 tekens is, wordt de uiteindelijke string langer als wat ie had moeten zijn, bij
[ code verwijderd ]
Wat op te lossen is door met de substrings van de padding te gaan werken, en te breaken als de lengte te lang is.quote:Op woensdag 28 februari 2007 15:41 schreef ralfie het volgende:
[..]
als je padding bijv 3 tekens is, wordt de uiteindelijke string langer als wat ie had moeten zijn, bij
[ code verwijderd ]
quote:Op woensdag 28 februari 2007 15:45 schreef Geqxon het volgende:
[..]
Wat op te lossen is door met de substrings van de padding te gaan werken, en te breaken als de lengte te lang is.
1 |
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 | String.prototype._padHelper = function(totalLength, paddingString, isRightPadding) { var padding = paddingString; if (!padding || padding.length == 0) padding = ' '; var s = this.toString(); var padLength = totalLength - s.length; if (totalLength >= 0) { while (padding.length < padLength) padding += padding; if (isRightPadding) { s += padding.substr(padding.length - padLength); } else { s = padding.substr(0, padLength) + s; } } return s; }; // Pads a string on the left with a specified padding string to a specified total length. String.prototype.padLeft = function(totalLength, paddingString) { return this._padHelper(totalLength, paddingString, false); }; // Pads a string on the right with a specified padding string to a specified total length. String.prototype.padRight = function(totalLength, paddingString){ return this._padHelper(totalLength, paddingString, true); }; |
1 2 3 4 5 6 7 8 9 | out.push('foo'.padLeft(5)); out.push('foo'.padLeft(5, 'x')); out.push('foo'.padRight(5)); out.push('foo'.padRight(5, 'x')); out.push('foobarbaz'.padLeft(5, 'x')); out.push(''.padLeft(5, 'x')); out.push(''.padLeft(5, '')); alert('"' + out.join('"\n"') + '"'); |
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 | function elf_proef(id) { var bankrekeningnummer = document.getElementById(id).value; //Verwijder alle tekens die geen cijfers zijn bankrekeningnummer = bankrekeningnummer.replace(/D/g, ""); aantal_tekens = bankrekeningnummer.length; var som=0; // loop door de 9 cijfers met de 11 proef formule for (i=1; i<10; i++) { getal=bankrekeningnummer.charAt(i-1); som+=getal*(10-i); } // geef resultaat van check terug if (som % 11==0 && aantal_tekens==9) { document.getElementById(id).value = bankrekeningnummer; return true; } else { alert('Dit is geen geldig bankrekeningnummer!'); document.getElementById(id).value = bankrekeningnummer; document.getElementById(id).focus(); } } </script> |
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 | var first = string.charAt(0); if( (first=="P") || (first=="p") ){ var error = postbank(string); } else { var error = bankrekening(string); } return error; } function bankrekening(string) { deel1=string.substring(0,3) deel2=string.substring(4,11) controle_getal=eval(string.substring(12,14)) getal=eval(deel1+deel2) if (getal%97==controle_getal){}//{window.alert("het rekeningnummer is juist")} else{ return "Het veld Banknummer is onjuist.n"; } } function postbank(string) { if (string.length<3) { return "Het veld Banknummer te kort voor postbanknummer.n"; } else if(string.length>7) { return "Het veld Banknummer te lang voor postbanknummer.n"; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function colorOver(div){ if(document.getElementById(div).style.background!="green"){ document.getElementById(div).style.background="white" } } function colorOut(div){ if(document.getElementById(div).style.background!="green"){ document.getElementById(div).style.background="blue" } } function colorUp(div){ document.getElementById(div).style.background="green" } </script> |
1 |
1 |
1 2 3 4 5 6 7 | function colorOver(div){ if (div.style.background != 'green') { div.style.background = "white"; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | { var link = event.target; var inputvalue = link.value; var next_node = nextNode(link); if (inputvalue.length + 1 < link.getAttribute('maxlength')) { return false; } while (next_node.nodeName != link.nodeName && next_node != null) { next_node = nextNode(next_node); } if (next_node != null) { next_node.focus(); } } |
1 2 3 4 5 6 7 | { if (inputs[i].hasAttribute('maxlength')) { inputs[i].addEventListener('keypress', auto_focus, false); } } |
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 | { var x; if (window.ActiveXObject) { x = new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest) { x = new XMLHttpRequest(); } return x; } var request = makeObject(); //AJAX the content var $url; var $div; function check_content($url,$div){ request.open('get', $url); request.onreadystatechange = parseCheck_content($div); request.send('');} function parseCheck_content($div){ if(request.readyState == 1){ document.getElementById($div).innerHTML = 'Loading...<br/><img src="spinner.gif" alt=""/>'; } if(request.readyState == 4){ var answer = request.responseText; document.getElementById($div).innerHTML = answer; }} |
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 | request.open('get', $url); request.onreadystatechange = function() { if (request.readyState == 1) { document.getElementById($div).innerHTML = 'Loading...<br/><img src="spinner.gif" alt=""/>'; } if (request.readyState == 4){ var answer = request.responseText; document.getElementById($div).innerHTML = answer; } } request.send(''); } |
1 2 3 | document.getElementById("navigatierechts").innerHTML = '<?php echo $NAVIGATIE_rechts; ?>'; </script> |
1 2 3 | $NAVIGATIE_rechts .='<li><a href="#" onClick="showHint(\\\'ARTIKELEN\\\')">ARTIKELEN</a></li>'; ?> |
1 2 3 | document.getElementById(aap+noot).value = "Mies!"; } |
1 2 3 4 5 | for (var i = 0; i <= 2; i++){ document.getElementById(aap+i).value = noot; } } |
1 2 3 | document.getElementById(field+counter).value = document.getElementById(field+id).value; } |
1 2 3 4 | for (var i=start; i<=end; i++){ document.getElementById(field+i).value = document.getElementById(field+id).value; } |
Da's geen enkel probleemquote:Op vrijdag 23 maart 2007 17:44 schreef veldmuis het volgende:
Ik heb een stukje HTML waarin ik meerdere foto's in dezelfde pagina om de beurt wil weergeven. Kan ik dan in JS iets van een array maken met de bestandsnamen en dat ik dan op 'volgende' kan klikken dat de volgende foto geladen wordt, of eventueel heel het HTML bestand opnieuw inclusief de volgende foto?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |