Dat is de theorie... volgens mij zitten er nogal wat bugs in verschillende browsers die het wat ingewikkelder maken. Maar dar weet ik het fijne ook niet van.quote:Op dinsdag 1 april 2008 09:45 schreef mcDavid het volgende:
<img onload="functie()" <src="#">
Als de action netjes is ingevuld in het formulier dan stuurt hij deze toch sowieso als javascript is uitgeschakeld of zie ik dat verkeerd? Volgens mij maken ze het wat spannender dan het is of denk ik nu te makkelijk, of lees ik nu verkeerd?quote:wanneer JavaScript uit zou staan in de browser van de gebruiker het
formulier ook verstuurd moet kunnen worden (gebruik het onsubmit
event).
Het is niet wat je denkt...quote:Op woensdag 9 april 2008 15:28 schreef mcDavid het volgende:
Een functie die checked of de gebruiker verder mag?
Al over nagedacht wat er gebeurt als mensen met greasemonkey je functies aan gaan passen?
Ja die bestaat:quote:Op woensdag 9 april 2008 13:32 schreef Pronk het volgende:
Dus mijn vraag is dus eigenlijk, bestaat er in javascript een commando waarmee ik alle lopende functies kan stoppen?
| 1 |
| 1 2 3 4 | { ToonOnderdeelX(); } |
Nadat ik deze stappen heb gevolgd ziet mijn HTML en CSS bestand er zo uit:quote:Part 1 - Setup
Lightbox v2.0 uses the Prototype Framework and Scriptaculous Effects Library. You will need to include these three Javascript files in your header.
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
Include the Lightbox CSS file (or append your active stylesheet with the Lightbox styles). <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
Check the CSS and make sure the referenced prevlabel.gif and nextlabel.gif files are in the right location. Also, make sure the loading.gif and closelabel.gif files as referenced near the top of the lightbox.js file are in the right location.
Part 2 - Activate
Add a rel="lightbox" attribute to any link tag to activate the lightbox. For example: <a href="images/image-1.jpg" rel="lightbox" title="my caption">image #1</a>
Optional: Use the title attribute if you want to show a caption.
If you have a set of related images that you would like to group, follow step one but additionally include a group name between square brackets in the rel attribute. For example: <a href="images/image-1.jpg" rel="lightbox[roadtrip]">image #1</a>
<a href="images/image-2.jpg" rel="lightbox[roadtrip]">image #2</a>
<a href="images/image-3.jpg" rel="lightbox[roadtrip]">image #3</a>
No limits to the number of image sets per page or how many images are allowed in each set. Go nuts!
| 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 | <html xmlns="http://www.w3.org/1999/xhtml"><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> <link href="Assets/styles.css" rel="stylesheet" type="text/css" /> <link href="Assets/lightbox.css" rel="stylesheet" type="text/css" media="screen" /> <script src="js/prototype.js" type="text/javascript"></script> <script src="js/scriptaculous.js?load=effects,builder" type="text/javascript"></script> <script src="js/lightbox.js" type="text/javascript"></script> <script language='JavaScript'> var fileLoadingImage = 'Images/loading.gif'; var fileBottomNavCloseImage = 'Images/closelabel.gif'; </script> </head> <body> <div id="containerDiv"> <div id="rechterDiv"> <div id="reclameDiv"> <h1><img src="Images/Allwheelsimport.gif" width="75" height="38" /></h1> <h1><a href="http://www.allwheelsimport.nl/" target="_blank">ALL WHEELS IMPORT</a></h1> </div> </div> <div id="centerDiv"> <div id="headerDiv"></div> <div id="mainDiv"> <div id="inhoudDiv"><a href="Images/Schilderijen groot/Roodzwarteolifant.jpg"><img src="Images/Schilderijen klein/Roodzwarteolifantklein.jpg" width="144" height="145" rel="lightbox" /></a></div> </div> <div id="footerDiv"></div> </div> <div id="navigatieDiv"> <div id="linksDiv"><a href="index.html">SCHILDERIJEN</a><a href="beaottink.html">BEA OTTINK</a><a href="index.html">KUNSTMARKTEN</a><a href="index.html">CONTACT</a></div> </div> </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 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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | position: absolute; top: 40%; left: 0%; height: 25%; width: 100%; text-align: center; line-height: 0; } #hoverNav{ position: absolute; top: 0; left: 0; height: 100%; width: 100%; z-index: 10; } #imageContainer>#hoverNav{ left: 0; } #hoverNav a{ outline: none; } #prevLink, #nextLink{ width: 49%; height: 100%; background-image: url(data:image/gif;base64,AAAA); /* Trick IE into showing hover */ display: block; } #prevLink { left: 0; float: left; } #nextLink { right: 0; float: right; } #prevLink:hover, #prevLink:visited:hover { background-image: url(../Images/prevlabel.gif); background-repeat: no-repeat; background-position: left 15%; } #nextLink:hover, #nextLink:visited:hover { background-image: url(../Images/nextlabel.gif); background-repeat: no-repeat; background-position: right 15%; } #imageDataContainer{ font: 10px Verdana, Helvetica, sans-serif; background-color: #fff; margin: 0 auto; line-height: 1.4em; overflow: auto; width: 100% ; } #imageData{ padding:0 10px; color: #666; } #imageData #imageDetails{ width: 70%; float: left; text-align: left; } #imageData #caption{ font-weight: bold; } #imageData #numberDisplay{ display: block; clear: left; padding-bottom: 1.0em; } #imageData #bottomNavClose{ width: 66px; float: right; padding-bottom: 0.7em; outline: none; } #overlay{ position: absolute; top: 0; left: 0; z-index: 90; width: 100%; height: 500px; background-color: #000; } |
| 1 |
die 10 moet 79,00.quote:Op woensdag 30 april 2008 20:00 schreef Chandler het volgende:
onchange="document.price.value=this.value*10"
| 1 |
Bedrag is een vaste waarde, 79.00quote:Op woensdag 30 april 2008 20:58 schreef SuperRembo het volgende:
[ code verwijderd ]
Maar dan ga ik er van uit dat je het bedrag met een decimale punt invoert, niet met een komma.
| 1 |
| 1 2 | <td width="115"><input disabled="disabled" class="number" name="price" size="5" /></td> |
Great!quote:Op woensdag 30 april 2008 23:35 schreef SuperRembo het volgende:
S-je vergeten, 't moet document.forms[0] zijn.
| 1 2 3 4 5 6 7 8 9 10 | { if( parseInt(this.value)!=''){ document.forms[0].elements['price'].value = '€ ' + parseInt(this.value) * 79 + ',00' } else { document.forms[0].elements['price'].value = '€ 0,00' } } |
| 1 |
| 1 2 3 4 5 6 7 8 9 | { var quantity = parseInt(quantityField.value); if (isNaN(quantity)) quantity = 0; var price = quantity * 79; document.forms[0].elements['price'].value = '¤ ' + price + ',00' } |
hulde!quote:Op donderdag 1 mei 2008 10:57 schreef SuperRembo het volgende:
Dat komt doordat in de functie de betekenis van "this" is veranderd. In de onclick attribuut verwijst "this" naar het element waar de onclick attribuut bij hoort. In jouw functie verwijst "this" naar het object waar de functie bij hoort (waarschijnlijk "window").
[ code verwijderd ]
[ code verwijderd ]
Dat iets niet lukt is inderdaad een bekend probleem.quote:Op vrijdag 2 mei 2008 16:50 schreef Ewaldus het volgende:
[...] het niet lukt. Is dit een bekend probleem[...]
Ben wel benieuwd hoe je het dan gedaan hebt?quote:Op zondag 4 mei 2008 21:27 schreef BugWorks het volgende:
Ik ben bezig met het maken van een invoer formulier (in dit geval voor een poll, bevat invoervelden voor een vraag en 10 antwoord opties). Standaard wil ik het invoerveld voor de vraag/stelling en 2 antwoord opties weergeven, de rest wordt pas zichtbaar als er in het voorgaan antwoordveld getyped wordt.
Dit bovenstaande lukt allemaal. Echter moet ik voor elk invoerveld vooraf aanmaken en aangeven dat hij verborgen moet blijven tot dit veranderd.
Is er niet een manier om dit middels javascript automatisch te laten gebeuren, zeg maar dat een div en invoerveld (<div><input ...></div>) automatisch aangemaakt wordt middels een script. Ik heb al verschillende keren hierop proberen te zoeken maar het lukt me niet om wat te vinden dat lijkt te werken.
Hier is een voorbeeld van hoe ik bovenstaande bedoel: Klik
paginabron bevat alles
Edit
Oplossing is eigenlijk niet meer nodig, heb het al opgelost door het met php te doen.
Om die invoervelden te automatisch aan te laten maken (optie 3 en meer) heb ik het volgende gebruikt:quote:Op maandag 5 mei 2008 00:58 schreef Flaccid het volgende:
[..]
Ben wel benieuwd hoe je het dan gedaan hebt?
| 1 2 3 4 5 6 7 8 9 10 11 | $max = 10; for($i=3;$i<=$max;$i++) { echo '<tr>'; echo '<td>'; echo '<div id="po'.$i.'" style="display:none">Optie'.$i.': <input id="ipo'.$i.'" type="text" name="pollOption" onkeydown="showNext('.$i.')" onkeyup="emptyCheck('.$i.')" /></div>'; echo '</td>'; echo '</tr>'; } ?> |
| 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 | <script language="JavaScript"> function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6. { var arVersion = navigator.appVersion.split("MSIE") var version = parseFloat(arVersion[1]) if ((version >= 5.5) && (document.body.filters)) { for(var i=0; i<document.images.length; i++) { var img = document.images[i] var imgName = img.src.toUpperCase() if (imgName.substring(imgName.length-3, imgName.length) == "PNG") { var imgID = (img.id) ? "id='" + img.id + "' " : "" var imgClass = (img.className) ? "class='" + img.className + "' " : "" var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' " var imgStyle = "display:inline-block;" + img.style.cssText if (img.align == "left") imgStyle = "float:left;" + imgStyle if (img.align == "right") imgStyle = "float:right;" + imgStyle if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle var strNewHTML = "<span " + imgID + imgClass + imgTitle + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";" + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader" + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" img.outerHTML = strNewHTML i = i-1 } } } } window.attachEvent("onload", correctPNG); </script> <![endif]--> |
Maar je zet er dus gewoon 10 in je bron. Als je nu 11 antwoorden heb?quote:Op maandag 5 mei 2008 17:04 schreef BugWorks het volgende:
[..]
Om die invoervelden te automatisch aan te laten maken (optie 3 en meer) heb ik het volgende gebruikt:
[ code verwijderd ]
Dit is overigens niet te zien in de broncode van de link die ik eerder meegaf.
| 1 2 3 4 | var titel = d.title.value; afkort = "string 1" + titel + "string 2"; |
| 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 | var AfkortingDialog = { init : function() { var f = document.forms[0]; // Get the selected contents as text and place it in the input f.someval.value = tinyMCEPopup.editor.selection.getContent({format : 'text'}); }, insert : function() { var d = document.forms[0]; var titel = d.title.value; //tags erbij zetten afkort = "<acronym title="+ titel +">"+tinyMCEPopup.editor.selection.getContent({format : 'text'})+"</acronym>"; // tags met input weer terugsturen tinyMCEPopup.editor.execCommand('mceInsertContent', false, afkort); tinyMCEPopup.close(); } }; tinyMCEPopup.onInit.add(AfkortingDialog.init, AfkortingDialog); |
| 1 |
| 1 |
Spammailtje:quote:emails:
Naam: JJasperO
Emailadres: email@adres.nl
Tekstveld: En wat tekst.
co202206-a.almel1.ov.home.nl
Opera/9.26 (Windows NT 6.0; U; nl)
Javascript:quote:crawl-66-249-72-9.googlebot.com
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <!-- function MM_validateForm() { //v4.0 if (document.getElementById){ var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments; for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]); if (val) { nm=val.name; if ((val=val.value)!="") { if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@'); if (p<1 || p==(val.length-1)) errors+='- '+nm+' dient een correct e-mailadres te bevatten.\n'; } else if (test!='R') { num = parseFloat(val); if (isNaN(val)) errors+='- '+nm+' must contain a number.\n'; if (test.indexOf('inRange') != -1) { p=test.indexOf(':'); min=test.substring(8,p); max=test.substring(p+1); if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n'; } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' dient te worden ingevuld.\n'; } } if (errors) alert('Het contactformulier is niet correct ingevuld:\n'+errors); document.MM_returnValue = (errors == ''); } } //--> </script> |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | // Configuration Settings if ($_POST['emails'] == '') { $SendFrom = "Geinteresseerde <info@buitendedoos.nl>"; $SendTo = "info@buitendedoos.nl"; $SubjectLine = "Reactie via creabee.nl"; $ThanksURL = "uwberichtisverzonden.html"; //confirmation page // Build Message Body from Web Form Input foreach ($_POST as $Field=>$Value) $MsgBody .= "$Field: $Value\n"; $MsgBody .= "\n" . @gethostbyaddr($_SERVER["REMOTE_ADDR"]) . "\n" . $_SERVER["HTTP_USER_AGENT"]; $MsgBody = htmlspecialchars($MsgBody, ENT_NOQUOTES); //make safe // Send E-Mail and Direct Browser to Confirmation Page mail($SendTo, $SubjectLine, $MsgBody, "From: $SendFrom"); header("Location: $ThanksURL"); } else { header("Location: http://www.google.com/"); } ?> |
| 1 2 3 4 | margin-left: -5000px; position: absolute; } |
als je wil dat google daar niet meer komt moet je ff een rel="nofollow" in je link naar 'contact' zettenquote:Op donderdag 12 juni 2008 11:29 schreef JJasperO het volgende:
Ik maak gebruik van een contactformulier met CSS om een invulveld onzichtbaar voor gebruikers te maken. Dit invulveld moet leeg blijven, anders word je geredirect naar een andere website. De zichtbare velden moeten worden ingevuld, daarvoor maak ik gebruik van Javascript.
Het vreemde echter is dat ik nu na een paar dagen al om de dag toch een spam-mailtje ontvang, waarbij helemaal niks is ingevuld! Is javascript met een normale submitknop soms niet voldoende om een bot te dwingen velden in te vullen?
Vb zoals het zou moeten zijn:
[..]
Spammailtje:
[..]
Javascript:
[ code verwijderd ]
PHP
[ code verwijderd ]
CSS
[ code verwijderd ]
Ok de handeling is duidelijk, dank. Begrijp ik uit je reactie ook goed dat het hier niet zozeer gaat om spam, maar een zgn crawler? Ander voorbeeldje van een binnengekomen mail:quote:Op donderdag 12 juni 2008 11:42 schreef PiRANiA het volgende:
[..]
als je wil dat google daar niet meer komt moet je ff een rel="nofollow" in je link naar 'contact' zetten
<a href="Contact/contact.html">CONTACT</a>
\/
<a href="Contact/contact.html" rel="nofollow">CONTACT</a>
Een crawler is toch juist nuttig om op je website te krijgen voor indexering. Alleen vreemd dat deze dan gebruik maakt van het contactformulier dat klaarblijkelijk toch 'lek' is omdat er iets kan worden verstuurd zonder dat de invulvelden zijn ingevuld (met javascript afgedwongen).quote:llf520125.crawl.yahoo.net
Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)
Ja, met PHP doen dus.quote:Op donderdag 12 juni 2008 12:16 schreef JJasperO het volgende:
Maar ik maak geen gebruik van javascript om te beveiligen. Ik gebruik CSS en PHP. Javascript is er alleen om er zeker van te zijn dat bezoekers alle velden invullen.
En juist dat is je fout; niet alleen op Javascript rekenen om te kijken welke velden er allemaal ingevuld zijn, ook in PHP doen!quote:Op donderdag 12 juni 2008 12:16 schreef JJasperO het volgende:
Maar ik maak geen gebruik van javascript om te beveiligen. Ik gebruik CSS en PHP. Javascript is er alleen om er zeker van te zijn dat bezoekers alle velden invullen.
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |