タグ

domに関するrti7743のブックマーク (4)

  • DOM = フレームバッファ - id:anatooのブログ

    この記事はDOM = Frame buffer | Quixey Blogを勝手訳したものです。 もしあなたが大規模なAJAXアプリケーションを書いているなら、このようなコードを書くのを許せるだろうか。 if (jQuery("#file_menu").is(":visible")) { ... } 駄目だ、これは全然良くない。というのも、プログラムの状態の保持をDOMに依存しているからだ。私たちは以下のように主張したい。DOMは木構造を持っているにもかかわらず、あなたのアプリケーションの出力をエンコードするのみであり、セマンティクス(意味論)を持っていない、と。 デスクトップのメタファ デスクトップアプリケーションをプログラミングすることを考えよう。あなたのプログラムはメモリ内のオブジェクトを通じて一連の状態を保持する。もしあなたが現在どのUIエレメントが表示されているかを知りたいならば

    DOM = フレームバッファ - id:anatooのブログ
  • PHPのXPathをトリッキーに使ってHTMLのテキストノードを取得 - TakiTakeの日記

    以前、PHPXPathでテキストノード取得したら、期待した順番通りに取得できなかった。と書きました。 ある要素の子ノード群に、エレメントノードとテキストノードがそれぞれ2つ以上あると起きる現象ではないかと推測します。 直下じゃなければいいのでは? ということで、ダミータグで囲ってみたら、期待した順番通りに取得できました。 PHPソース <?php $html = <<< EOL <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'> <html> <head> <meta http-equiv='Content-type' content='text/html; charset=utf-8'> <title>test</title> </head> <body>

    PHPのXPathをトリッキーに使ってHTMLのテキストノードを取得 - TakiTakeの日記
  • getElementsByClass(IE,Firefox対応版) - 技術情報メモ

    function getElementsByClass(searchClass) { if (document.all) { var classElements = new Array(); var allElements = document.all; for (i = 0, j = 0; i < allElements.length; i++) { if (allElements[i].className == searchClass) { classElements[j] = allElements[i]; j++; } } } else if (document.getElementsByTagName) { var classElements = new Array(); var allElements = document.getElementsByTagName("*");

    getElementsByClass(IE,Firefox対応版) - 技術情報メモ
  • FirefoxのhtmlparserをXPCOM経由で呼び出して壊れたHTMLを修復する - bits and bytes

    dapper のように、ブラウザでクリックをしたところをスクレイプする、というときにはXPathが向いています。ブラウザでクリックした部分のXPathをサーバに保存しておけば、あとで保存したXPathに従ってドキュメントからエレメントを取り出すことができます。 しかし実際にHTMLからXPathを使ってエレメントを取り出すときに大きな問題になるのが、ウェブページの大半(体感で70%くらい)は記述されているHTMLが構造的に壊れているという事実です。タグを開いたまま閉じていなかったり、開いていないものを閉じていたり、ドキュメントの最後に</body></html>が二重に入っていたり、壊れかたは様々ですが、とにかくウェブ上のHTMLは大半が壊れています。壊れているHTMLが大半だからなのか、壊れているHTMLでもブラウザが適当に解釈して表示してくれるからなのか、とにかく世の中のヘージの大半

  • 1