タグ

ブックマーク / nanto.asablo.jp (4)

  • Perl で HTML をパースするモジュール: Days on the Moon

    この記事は HTML アドベントカレンダーの 19 日目の分、兼 Perl アドベントカレンダーの 19 日目の分です。 PerlHTML をパースするモジュールはいくつもあります。 HTML::Parser そのままの名前ですね。HTML コードをパースしていき、開始タグ、終了タグ、テキストなどを認識するとそれをイベントとして知らせてくれる、プッシュ型のパーサーです。 HTML の要素の内容モデルや、ある要素のタグが省略可能かといった知識は持っていません。あくまでもタグやテキストなどの出現を知らせるだけで、文書木を構築するわけではないからです。 逐次的なパースに対応しています。HTML 文書全体を表すコードを一気に入力として与えなくてもよく、HTTP 通信中に受け取った分からパースしていくといったことが可能です。 Web 製作者の意図を汲み取ろうと努めており、「壊れた」HTML

    fuba
    fuba 2022/04/20
  • 文字列と UTF-8 バイト列の相互変換: Days on the Moon

    やっていることは「高度な JavaScript 技集」の「UTF-8 <-> UTF16 変換」と同じ。 function toUTF8Octets(string) { return unescape(encodeURIComponent(string)); } function fromUTF8Octets(octets) { return decodeURIComponent(escape(octets)); } encodeURIComponent は encodeURI でもいい (むしろそのほうが処理する文字種が減って速くなりそう) が、decodeURIComponent は decodeURI にすると一部の文字 ("?"、"#" など) がデコードされなくなる。 使いどころ Base64 エンコードする関数 (「高度な JavaScript 技集」の base64encod

  • このブログで Safari がクラッシュ?: Days on the Moon

    Safari 1.3.2 でこのブログを見るとクラッシュするという報告がありました。手元に Safari がないので確認できませんが、古の NN 4 ではあるまいし HTMLCSS が原因で落ちるとは考えづらく、おそらく JavaScript 絡みだろうと思います。なのでいったんスクリプトを外してみました。 しかし、このままでは原因がわかりませんので、それを絞るべくいくつかパターンを用意しました。Safari をお使いの方はよろしければ各パターンについて (面倒なら 1 だけでも) Safari がクラッシュするかどうかを検証していただけないでしょうか。なお、報告に際しては、Safari のバージョンと確実にクラッシュするのか時々クラッシュするのか、またはまったくクラッシュしないのかを添えてもらえると助かります。 従来どおり (スクリプトあり) ユーティリティースクリプトを外した状態

  • Firefox 1.5 の JavaScript の主な変更点: Days on the Moon

    えむもじらにて Firefox 1.5 の主な変更点が取り上げられているが、JavaScript 関係の話題がないようなので補足しておく。その後 JavaScript に関する話題も追加された。 E4X E4X (ECMAScript for XML) がサポートされた (Bug 246441) 。これにより JavaScript のデータ型として XML を扱うことができるようになる。サンプルは ECMAScript for XML - d.y.d.などを参照。 Array extras Array オブジェクトのインスタンスメソッドに indexOf 、lastIndexOf 、forEach 、map 、filter 、some 、every が追加された (Bug 290592) 。詳細については Core JavaScript 1.5 Reference の Array の項を参

  • 1