Mail: Pass:
前月  2007年2月  翌月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28

links

 びびすけさんのページ
 体重・走距離分析
 月間・靴・コース走距離
 タイムトライアル分析
 速度・心拍数分析
 自転車・月間・コース走距離
 オセロ勝敗・レート分析
 ViVi web site

新着日記

 ViVi 2.02〜2.05 の使用者数割合
 動的補完候補一覧(2)
 動的補完候補一覧
 再延期
 VC6 on Vista Home
 ViVi 週間DL数
 生物学 公開講座
 Hammond Park
 以前住んでたアパート
 TabMixPlus
 ViVi 週間DL数
 延期
 zLib
 ViVi 2.x リリースチェック時間統計
 趣味悠々
 ViVi version 3.0 M-2 進捗

新着コメント

 VC6 on Vista/MeijiK
 ボストンのアパ…/びびすけ
 おお/びびすけ
 再放送/川瀬
 アップ/びびすけ
 あーー!/スパイダーマン
 放映/びびすけ
 どもども/びびすけ
 必見だぁ^^/oyaji_aoba
 おおー!/スパイダーマン

トラックバック

トラックバックはありません。

カテゴリ一覧

 基本データ
 テニス
 ジョギング
 ViVi
 自転車
 Web
 RunRunDietOnline
 PostgreSQL
 ビルドアップ走
 ランニング

2件の日記があります。

あさ (2007/02/11 07:29) 基本データ 1 comment

体重:62.3kg


escapeHTML() @ prototype.js (2007/02/11 10:17) 1 comment

昨晩から Ajaxな掲示板 を作成している
いろいろはまりまくったのだが、その原因のひとつが prototype.js の escapeHTML() という文字列クラスのメソッド
こいつは < > などのHTML特殊文字を &lt; などに変換してくれるのだが、
IE7ではついでに改行を削除してくれちゃったりする(FireFox では削除されなかった)
もともとは 入力された文字列を確認のためにそのまま表示したいので、HTML特殊文字を変換した後、
改行を <br> に変換したかった。先に改行が消えてしまっては困ってしまう

んで、prototype.js 1.5.0 の escapeHTML() の実装コードをみて驚いた。
なんとトリッキーなコードであろうか
---
  escapeHTML: function() {
    var div = document.createElement('div');
    var text = document.createTextNode(this);
    div.appendChild(text);
    return div.innerHTML;
  },
---
ドキュメントに <div>要素を作成し、変換したい文字列のテキストノードを作り、
それを <div> 要素の子供としてアペンドし、div.innerHTML でHTML特殊文字を変換したテキストを取り出している
つまりブラウザのDOMの機能を使用して、高速化を図っていると推測される
DOMの細かな挙動はブラウザの実装により異なるので、IE7では改行が削除されてしまった、というわけだ

prototype.js はブラウザの違いを吸収してくれるという触れ込みだったはずなのに、これでは困っちまうぜ

2件の日記があります。

パスワード忘れ
今週のランキング
計算タマちゃん
FAQ
ヘルプ
about rrdOnline