タグ

DOMとIEに関するn2sのブックマーク (6)

  • DOMNodeInserted と DOMNodeRemoved に似た仕組みを IE でも使えるようにして、セレクタの実行結果をキャッシュする - latest log

    セレクタ(id, tag, class, css, xpath)の実行速度を改善するには、2つの方法があります。 ロジックを改善する キャッシュを使う 今日は2の方法について検討したことを書き残します。 心配事 キャッシュを使う上での心配事は「キャッシュが古くなったらどうするか、それをどうやって知るか?」です。 古くなったキャッシュはクリアしなければなりません。 DOM Level2 MutationEvents を使うと、ノードの挿入, 削除と、属性の更新 を取得できる DOM Level2 MutationEvents という仕様があります。これらを活用するとDOMツリーが更新されたタイミングを監視できます。 DOMNodeInserted は ノードの挿入, DOMNodeRemoved は ノードの削除, DOMAttrModified は 属性の変更に対応しています。 各ブラウザ

    DOMNodeInserted と DOMNodeRemoved に似た仕組みを IE でも使えるようにして、セレクタの実行結果をキャッシュする - latest log
  • IEでpassword表示 - os0x.blog

    140文字以内でパスワード丸見え - latest log IE対応は結構面倒なんですよね。 まず、IEはinput要素のtypeを書き換えさせてくれないので次のようなスクリプトすら通らない。 var d=document.createElement('div'); d.innerHTML='<form name="f"><input type="text" name="t"></form>'; document.body.appendChild(d); var t=document.getElementsByName('t')[0]; alert(t.type);// -> text t.type='password';//ERROR! そこでouterHTMLで書き換えをする var d=document.createElement('div'); d.innerHTML='<form

    IEでpassword表示 - os0x.blog
  • MSIEでDOM Level2 HTML

    はじめに XML/(X)HTML文書の動的な制御には、DOMがよく使われるけれども、MSIEでは云々…という話がしょっちゅうある。ここでの目的は、ぽかぽかWeb研究室のDOM Level 2 標準技術をMSIEで使うシリーズ(イベント、基操作、XML読み込みとXPath)と同様、MSIEも視野に入れつつなんとか標準技術の便利さを享受しよう、というアプローチ。別名、悪あがき。 今回はECMAScript(JavaScript,JScript)を用いてDOM2HTMLのプロトタイプをあれこれいじれるようにしてみたい。 DOM Level2 HTMLのプロトタイプ ECMAScriptには、プロトタイプ(雛形)にプロパティを追加してやると、同じ雛形を用いてコンストラクタ(工場)から生成されたオブジェクトはみんな同様のプロパティを持つ/扱えるようになる、という仕組みが採用されている。で、ECMA

  • IEでHTMLElement.prototypeの代替手段 - Thousand Years

    FireFoxなどにあるHTMLElementのprototypeに共有の便利メソッドを突っ込みたいという欲求があるんですがIEでは実装されていないのでうまくいきません。googleっても出てこねぇよ!ということで仕様読む。MSDN見ていたらどうやらIEではDOMイベントなどの定義にはprototypeではなくHTC(HTML Component)という機構で実装されているからだそうで…*1 DIVエレメントに共通のonclickイベントを仕込む 以下のスクリプトは全てのDIV要素にonclickイベントを仕組むスクリプトです。alert("hoge");されます。 ■hoge.htc <public:component> <public:attach event="onclick" onevent="hoge()" /> <script language="JScript"> funct

    IEでHTMLElement.prototypeの代替手段 - Thousand Years
    n2s
    n2s 2008/03/18
    HTCを使う方法
  • IEで複数行選択のselect要素を作る (それなりブログ)

    javascriptのIE6用クロスブラウザ対応の話です。 仕事javascriptを使うと普段はスルーしていた だるい部分をスルーできなくなり、必然的にこういう内容が多くなります。 普通の複数行選択select要素の作成方法 var select = document.createElement("select"); select.multiple = true; alert(select.type); // "select-multiple" XP-FireFox1.5とMac-Safari2で確認しました。 糞XP-IE6の場合 var select = document.createElement("<select multiple>"); alert(select.type); // "select-multiple"; multiple属性にtrueを入れる方法だと、ク

  • Opera の id, name 問題 - IT戦記

    Opera たん… getElementsByName で id もとれる // <input name="foo" id="bar" /> // <input name="bar" id="foo" /> var elms = document.getElementsByName('foo'); alert(elms.length); // 2 ( id="foo" のほうも選択しちゃう ) getElementById で name だけとれる // <input name="foo" id="bar" /> // <input name="bar" id="foo" /> var elm = document.getElementById('foo'); alert(elm.id); // bar

    Opera の id, name 問題 - IT戦記
    n2s
    n2s 2007/11/10
    ちょうど今読んでるfutomiさんの本でも取り上げられていました。Opera 9.5では修正されるんですね。
  • 1