{"id":1151,"date":"2011-10-25T12:01:01","date_gmt":"2011-10-25T10:01:01","guid":{"rendered":"http:\/\/sickel.net\/blogg\/?p=1151"},"modified":"2012-07-05T21:40:50","modified_gmt":"2012-07-05T19:40:50","slug":"internet-explorer-8-event-handling-with-prototype-js","status":"publish","type":"post","link":"http:\/\/sickel.net\/blogg\/?p=1151","title":{"rendered":"Internet explorer 8, event handling with prototype.js"},"content":{"rendered":"<p><a href=\"http:\/\/prototypejs.org\">Prototype.js<\/a> claims to be able to stop all woes on handling events in javascript. Well, not really, it seems like. <\/p>\n<p>I have two buttons in a web page adjusting a value up and down. Then I make a shared event handler, and using prototype.js, it starts up like this:<\/p>\n<p><code><br \/>\nfunction chchannel(event){<br \/>\n\tvar src=event.element();<br \/>\n\tif(src.id=='btminus') chno-=1;<br \/>\n\t\telse chno+=1; \/\/ btplus has been pressed<br \/>\n\/\/ and so on.<br \/>\n<\/code><\/p>\n<p>This works great in firefox, opera and chrome, but fails miserably in internet explorer 8. Somewhere from deep within prototype.js (line 5424 (v. 1.7)) a &#8220;&#8216;nodeType&#8217; is null or not an object&#8221; error is created. I also tried doing an explisit Event.extend() on the event, but to no avail. Looking into the event object with the debugger, I found the element srcElement which seemed to be what I was looking for and does not exist in firefox (at least, have not checked the others yet), so<\/p>\n<p><code><br \/>\n\tvar elt;<br \/>\n\tif(typeof event.srcElement == \"object\"){<br \/>\n\t\telt=$(event.srcElement.id);<br \/>\n\t}<br \/>\n\telse{<br \/>\n\t\telt=event.element();<br \/>\n\t}<br \/>\n<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Prototype.js claims to be able to stop all woes on handling events in javascript. Well, not really, it seems like. I have two buttons in a web page adjusting a value up and down. Then I make a shared event &hellip; <a href=\"http:\/\/sickel.net\/blogg\/?p=1151\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4,31],"tags":[],"class_list":["post-1151","post","type-post","status-publish","format-standard","hentry","category-data","category-javascript"],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pnVtD-iz","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"http:\/\/sickel.net\/blogg\/index.php?rest_route=\/wp\/v2\/posts\/1151","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/sickel.net\/blogg\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/sickel.net\/blogg\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/sickel.net\/blogg\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/sickel.net\/blogg\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1151"}],"version-history":[{"count":4,"href":"http:\/\/sickel.net\/blogg\/index.php?rest_route=\/wp\/v2\/posts\/1151\/revisions"}],"predecessor-version":[{"id":1306,"href":"http:\/\/sickel.net\/blogg\/index.php?rest_route=\/wp\/v2\/posts\/1151\/revisions\/1306"}],"wp:attachment":[{"href":"http:\/\/sickel.net\/blogg\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/sickel.net\/blogg\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1151"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/sickel.net\/blogg\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}