1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | { if (obj.addEventListener) obj.addEventListener( type, fn, false ); else if (obj.attachEvent) { obj["e"+type+fn] = fn; obj[type+fn] = function() { obj["e"+type+fn]( window.event ); } obj.attachEvent( "on"+type, obj[type+fn] ); } } function resizeHandler(e) { // ... } addEvent(window, "resize", resizeHandler); |
Je moet natuurlijk wel de twee haakjes achter adBox weghalen, als je hem in een event-handler dondert.quote:Op donderdag 30 augustus 2007 13:20 schreef Chandler het volgende:
Het werkt nu wel iig, maar zie eingelijk geen verschilwhat happend?
Doet dit niet basicly hetzelfde?quote:Op donderdag 30 augustus 2007 13:24 schreef SuperRembo het volgende:
Met de addEvent/removeEvent functies van quirksmode.org:
[ 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 | ... adsense enzo.... </div> <script language="javascript"> function adBox() { contentSize = 720; midden = ((document.documentElement['offsetWidth'] -2)/2 - 80); document.getElementById('centerrechts').style.left = ((document.documentElement['offsetWidth']/2) + (contentSize /2)); document.getElementById('centerrechts').style.display = 'block'; } function addEvent( obj, type, fn ) { if (obj.addEventListener) obj.addEventListener( type, fn, false ); else if (obj.attachEvent) { obj["e"+type+fn] = fn; obj[type+fn] = function() { obj["e"+type+fn]( window.event ); } obj.attachEvent( "on"+type, obj[type+fn] ); } } addEvent(window, "resize", adBox); adBox(); </script> |
1 2 3 | Source File: http://www.gfxpoll.nl/index.php Line: 0 |
Basicly wel. In mijn versie kan je de code makkelijker hergebruiken. Verder zit er een verschil in de scope waarin de handlers worden uitgevoerd.quote:Op donderdag 30 augustus 2007 13:44 schreef Geqxon het volgende:
[..]
Doet dit niet basicly hetzelfde?
Het is niet zo dat de style.left property niet wordt ondersteund, maar de waarde die je er in probeert te zetten is ongeldig. Style.left moet een lengte zijn: een getal en een eenheid (bij px, pt of %). Alleen bij de waarde 0 mag je de eenheid weglaten.quote:Op donderdag 30 augustus 2007 18:05 schreef Chandler het volgende:
Volgens mij wel, maar nu blijkt dit weer niet te werken in FF krijg een melding dat LEFT niet geaccepteerd wordt!
[ code verwijderd ]
en dan de melding in FF
[ code verwijderd ]snap ut nou helemaal niet meer
FF ver. 1.5.0.12
Ik heb mij er eens even in verdiept, ik heb hem door. Dank uquote:Op donderdag 30 augustus 2007 18:09 schreef SuperRembo het volgende:
[..]
Basicly wel. In mijn versie kan je de code makkelijker hergebruiken. Verder zit er een verschil in de scope waarin de handlers worden uitgevoerd.
Maar beide versies zijn verre van bug-vrij.
1 2 3 | alert(arr["foo"]); alert(arr.foo); |
1 2 3 4 | blaat.property1 = "blaat"; blaat["property1"] = "blaat; |
1 2 3 | property1: "blaat" }; |
Wat zoek je dan? Je kunt er wel doorheen lopen met een for:quote:Op donderdag 6 september 2007 13:29 schreef Chandler het volgende:
Ah SuperRembo, jammer dat dat er niet in verwerkt zit :{ want de optie die je aangeeft is niet echt wat ik zoek :( dan maar zonder array werken :P
1 2 3 4 5 | for (var i in myCollection) { alert(myCollection[i]); } |
Er zitten wel arrays in, maar niet met named keys. Maar wat wil je precies doen? Het zou zomaar kunnen dat het toch lukt met objecten of anderszinsquote:Op donderdag 6 september 2007 13:29 schreef Chandler het volgende:
Ah SuperRembo, jammer dat dat er niet in verwerkt zitwant de optie die je aangeeft is niet echt wat ik zoek
dan maar zonder array werken
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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | <head> <script language="javascript"> var xmlHttp; // xmlHttp var. var xmlHttpError; // error variable var xmlHttpFailure = false; // false for failure var xmlHttpCache; // buffer for received data function create_http_object() { // This array is a list of all/most possible XMLHTTP types var ActiveXTypes = [ "Microsoft.XMLHTTP", "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP" ]; // Loop through the ActiveXTypes array and for (var i = 0; i < ActiveXTypes.length; i++) { // try to use the current XMLHTTP object, // if not it's not possible try the next try { return new ActiveXObject(ActiveXTypes[i]); } catch(e) { // object kan niet gebruikt worden! } } // none of them worked, try the function XMLHttpRequest() try { return new XMLHttpRequest(); } catch(e) { alert("Helemaal geen XML mogelijkheden"); } // It seems that the browser doesn't support AJAX Stuff return false; } function stateChanged() { // is readyState 4? 4 = all data is received if (xmlHttp.readyState == 4) { // return data to xmlHttpCache variable xmlHttpCache = xmlHttp.responseText; } } function ajaxSubmit(url, data, returnOBJ) { // url location of the scripting // data array of submit data // returnOBJ is the object to return the received data to // open XMLHTTP connection xmlHttp = create_http_object(); // connection open? if (xmlHttp != false) { // when state is ready, do save xmlHttp.onreadystatechange = stateChanged(); // open url xmlHttp.open('POST', url, true); // set headers before posting xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlHttp.setRequestHeader("Content-length", data.length); xmlHttp.setRequestHeader("Connection", "close"); // send data to server xmlHttp.send(data); // object is given! (or not?) if (returnOBJ != "") { // add received content to given object (returnOBJ) returnOBJ = xmlHttpCache; } } else { // display ERROR notice notifyNoAjax(); } } function ajaxGet(url, data, returnOBJ) { // url location of scripting // data compilation of string paramters // return OBJ object to return received data to // open XMLHTTP connection xmlHttp = create_http_object(); // connection open? if (xmlHttp != false) { // what to do with received data! xmlHttp.onreadystatechange = stateChanged(); // open url location xmlHttp.open('GET', url + data, true); // send nothing, just go receive data xmlHttp.send(null); // if received data is longer then.... if (xmlHttpCache.length > 0 && returnOBJ != "") { returnOBJ = xmlHttpCache; } } else { // display ERROR notice! notifyNoAjax(); } } function notifyNoAjax() { if (xmlHttpFailure == false) { alert('Sorry, uw brouwser ondersteund geen AJAX / Javascript calls'); } } </script> </head> <body> <div id="receiveddatadiv" style="width: 300px; height: 100px; border: 1px solid green">Content is comming....</div> <a href="#" onClick="ajaxGet('file://c:/1.html', '', document.getElementById('receiveddatadiv').innerHtml);">AJAX GET TEST</a> <form> Name: <input type="text" id="id_name"><br /> Text: <textarea name="text" id="id_text"></textarea><br /> </form> <input type="button" onClick="ajaxSubmit('c:/test.php', 'name=' + escape(encodeURI(document.getElementById('id_name').value)) + '&text=' + escape(encodeURI(document.getElementById('id_text').value)), document.getElementById('receiveddatadiv').innerHtml);" value="AJAX POST TEST"> </body> </html> |
1 2 3 4 5 6 7 8 9 10 11 12 | { var data = []; for (p in params) { data.push(encodeURIComponent(p) + "=" + encodeURIComponent(params[p])); } return data.join("&"); } var params = { code: "foo", name: "Foo" }; var data = encodeParams(params); |
quote:Sorry, uw brouwser ondersteund geen AJAX / Javascript calls
Mooi lapje code! maar wat bedoel je met de laatste quote?quote:Op donderdag 6 september 2007 18:53 schreef SuperRembo het volgende:
[ code verwijderd ]
Dan kan je de variabele data in een url ("test.php?" + data) of als post data in een http request (request.send(data)).
[..]
![]()
Dat je code als het een publieke website is liever ook werkt als JS uit staat denk ik, en dat mensen zonder JS deze alert nooit gaan zienquote:Op vrijdag 7 september 2007 09:32 schreef Chandler het volgende:
[..]
Mooi lapje code! maar wat bedoel je met de laatste quote?
Wat doet die returnObj parameter in je functie? Parameters zijn om iets door te geven aan een functie, niet voor return values... bovendien zie ik de functie nergens wachten tot er een resultaat is. Er wordt vanuit gegaan dat er meteen resultaat is, dat werkt heel misschien als je op localhost zit te testen maar dat gaat gegarandeerd mis als de request iets langer duurt, want alles gaat asynchroon en het script blijft daar dus niet op wachten. Met AJAX wil je netjes event based werken, maw: een callbackfunctie definieren die pas aangeroepen wordt als alle data ook daadwerkelijk binnen is. Als je dat niet doet heb je (zeker bij meerdere ajax calls door elkaar die van elkaar afhankelijk zijn) grote kans op een zeer instabiele applicatie die moeilijk tot onmogelijk te debuggen is. Been there, done that, got the t-shirt....quote:Op vrijdag 7 september 2007 12:16 schreef Chandler het volgende:
Haha, duidelijk jatrue true..
Heb je iig nog comments op mjin funcies? hoor graag opbouwende kritiek!
De spelling "brouwser"quote:Op vrijdag 7 september 2007 09:32 schreef Chandler het volgende:
Mooi lapje code! maar wat bedoel je met de laatste quote?Ik heb de code trouwens aangepast
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |