IT戦記

プログラミング、起業などについて書いているプログラマーのブログです😚

DOM 系の関数は IE に合わせればいいんじゃね?

IE 以外のブラウザは HTML 要素(Element)の prototype がとれる

prototype とはクラスの定義のようなもの。

具体的には

以下のようにとれる

ブラウザ 方法
Opera HTMLElement.prototype
Firefox HTMLElement.prototype OR document.documentElement.__proto__.__proto__
Konqueror (たぶんSafariも(情報求む)) document.documentElement.__proto__

prototype を書き換えるとそれと繋がるオブジェクトは全て書き換わる

これはおもしろい。

例のごとく IE だけ取れないので

動作が違う関数はすべて IE に合わせてやればいいんじゃない!?(ヒラメキ!)と思った

たとえば。。。

Ptototype.js の Event.observe もワンライナーで書けるよ!

//Executable
(HTMLElement.prototype||document.documentElement.__proto__||{}).attachEvent=function(name,func){this.addEventListener(name.replace(/^on/,''),func,false)};