DOM
仕事中息抜きに書いてた。 文書の元々のソースコードと実際の表示が違うというのをやってみたかった。ちなみに文書を読み込んだ時点で文書型は決まってしまうので、あとからDOCTYPE書き換えても意味ないです。https://dl.dropboxusercontent.com/u/414379/ww…
IEの開発者コンソールで var textNodeIterator = document.createNodeIterator( document, NodeFilter.SHOW_TEXT, function(node){ return /^\s*$/.test(node.textContent) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP; }, false); textNodeIterat…
DOMParserは覚えてるけどXMLSerializerをしょっちゅう忘れちゃうのでメモ。 var parser, serializer; var input, output; var dom; input = '<div id="test"><p>hogehoge</p></div>'; parser = new DOMParser(); try { dom = parser.parseFromString(input, "text/html").getElementById(…
有名なのはinnerHTMLですね。 ただ、これ以外にもテキストを評価してDOMツリーに追加する方法がありますので、今回はこれをやってみました。単純にループで同じメソッドおよびプロパティ操作をしているだけです。 試行回数は1000回ですが、これはinnerHTMLの…
あっちの界隈でよくあるADV*1なんかだと、公式サイトのキャラ紹介にmp3なファイルが直接置かれている場合が少なくありません。 特にIEさんやFxさんはこの手のものに出会うと、デフォルトでは一旦DLしてローカルの別のアプリケーションで再生する、という挙動…
前回載せたスクリプトのバグ修正が完了したので再掲。原因はなんとなくだけど検討ついたので、とりあえず書き換えてみたら見事正常に機能するようになりました。 while ((regRes = pattern.exec(self.textContent)) !== null) { var a = document.createElem…
主に自分で使う用に。 よく出回ってるようなコードは "簡素だけどDOM標準は無視" というのが多かった(大体innerHTMLをreplaceしてる)ので、ならばと自分で書きました。 (function(){ // Rangeが使えなければ意味が無いので、ここで一旦判定をしています。 …
HTMLStyleElement の sheet プロパティは常に存在するわけではないらしい。 var s = document.createElement("style"); // この時点ではまだ存在していない console.log(s.sheet); // ==> null s.sheet.insertRule("#hoge{box-shadow:1px 1px #333;}", 0); /…
同じ個所に複数のノードを追加する場合でも、 なぜかRangeオブジェクトで範囲とって一気に追加するよりもinsertBeforeメソッドの方が全体的に速かったみたいです。 内部的な処理は少ないと思うんだけどなぁ…。なんか悲しい。 var doc = document; var hoge =…
完全に趣味の範囲ですが…。下記コードで使われることになる document.implementation ですが、主要ブラウザはほぼ対応しています。 ただしIE8のみDOMImplementationは存在しているのに、メソッドがないという謎な状況になっています。 // wnd に DOMWindowを…