IE以外でinnerTextを使う方法
2007–03–13
IEの独自属性である「innerText」はオブジェクトから「テキストのみ」直接取得する、とても便利なメソッドです。これをMozillaベースのブラウザでも実装できるHackを見つけたので、メモっておきます。
IE以外でinnerTextを使用する [innerText]
Script
HTMLElement.prototype.__defineGetter__("innerText",function(){var textRange = this.ownerDocument.createRange();textRange.selectNodeContents(this);return textRange.toString();});
選択範囲を作成し、そこからコンテンツを取得して文字列として返しているわけですね。ネタ元はIBM。「__defineGetter__」はある特定のプロパティの値を取得するメソッドです。
HTMLElement.prototype.innerText = function() {};
上みたく「prototypeで書けたらすっきりするのにな~」と考えたのですが、巧くできませんでした。なんでだろ?
参照
- openWebWare, openWYSIWYG
- IBM, Web アプリケーションを複数のブラウザーに適応させる
- Mozilla Developer Center, Defining Getters and Setters