Safari3で楽になったHTMLElement Prototyping
今までのSafariではHTMLElement Prototypingをするのに色々とハックする必要がありましたがSafari3からは直球でHTMLElementが実装されていてハックできます。
実装されているHTMLElement系のオブジェクト
JavaScriptで機械的に書き出したので漏れがあるかも…。*1
HTMLFontElement,HTMLBodyElement,HTMLScriptElement,HTMLDivElement,HTMLLabelElement,HTMLIsIndexElement,HTMLElement,HTMLSelectElement,HTMLModElement,HTMLParamElement,HTMLHeadingElement,HTMLMetaElement,HTMLBaseFontElement,HTMLDListElement,HTMLParagraphElement,HTMLFormElement,HTMLDocument,HTMLPreElement,HTMLButtonElement,HTMLInputElement,HTMLOptGroupElement,HTMLAppletElement,HTMLMapElement,HTMLStyleElement,HTMLLinkElement,HTMLBRElement,HTMLAnchorElement,HTMLAreaElement,HTMLBaseElement,HTMLDirectoryElement,HTMLFieldSetElement,HTMLHeadElement,HTMLHRElement,HTMLHtmlElement,HTMLImageElement,HTMLLegendElement,HTMLLIElement,HTMLMenuElement,HTMLOListElement,HTMLOptionElement,HTMLQuoteElement,HTMLTextAreaElement,HTMLTitleElement,HTMLUListElement,HTMLCanvasElement,
サンプル
<html> <head> <script> HTMLElement.prototype.foo = function(){ alert(this.getAttribute('id')); }; </script> </head> <body> <div id="foo"></div> <script> document.getElementById('foo').foo(); </script> </body> </html>
*1:for(i in this){ if(i.indexOf('HTML') >= 0){document.write(i, '<br />'); }}