DOM

ProgressEventの使い方が分からない件

あるけど使い方わからない>< WebKit系 for(i in ProgressEvent.prototype){ document.write(i, ','); } initProgressEvent,MOUSEOUT,preventDefault,FOCUS,CHANGE,initEvent,MOUSEMOVE,AT_TARGET,stopPropagation,SELECT,BLUR,KEYUP,MOUSEDOWN,MOUSEDRAG,B…

innerHTMLでスクリプトする為のバッドノウハウ

ところで jQuery#html()にscriptを突っ込んでもJSを実行してくれます。document.writeを利用するとひどいことになりますけど(--; $("#foo").html("<script>alert('Hello');<"+"/script>"); innerHTMLでscriptする為の方法 document.getElementById("foo").innerHTML …

setExpression

style.setExpressionは知っていたけどElement#setExpressionも使えるのね。IE限定でいまいち使いどころが分からない(--; var foo = document.getElementById('foo'); foo.setExpression('innerHTML','new Date().getTime()');

Safari3で楽になったHTMLElement Prototyping

今までのSafariではHTMLElement Prototypingをするのに色々とハックする必要がありましたがSafari3からは直球でHTMLElementが実装されていてハックできます。 実装されているHTMLElement系のオブジェクト JavaScriptで機械的に書き出したので漏れがあるかも……

Safari3にinsertAdjacentElementが実装されている。

Safari3対応のinsertAjacent.jsをつくろうかなと思って調査したところinsertAdjacentElementは既に搭載されてました。insertAdjacentHTMLとかinsertAdjacentTextは現段階では実装無。 サンプル // true alert('insertAdjacentElement' in HTMLElement.protot…

Safari2 de HTMLElement Prototyping

Safari2(1は知らない)の話ですがfxにあるHTMLElement.prototypeをいじれないかなって調べてみました。Safari2でもHTMLElement.prototypeみたいなことができそうです。 対応表 fxでのそれ Safari2でのそれ おまじない Document.prototype window['[[DOMDocu…

JavaScriptでUndoRedoするためのなにか

方法論? ふとJavaScriptでUndoRedo機構がエレガントにつくれないかと思ってなんかごさごさやっていたんですがそれっぽいものができたのでアプローチをポスト。UndoRedo機構つくる為の方法論としていくつか考えてみました。 前やったことの逆算。次やることの…

document.writeハック

ハックその1 document.write = function() { var arg = []; var scripts = document.scripts; for(var i=0,f=arguments.length;i

fxでdocument.scripts対応となんか

fxでdocument.scripts対応 id:shogo4405:20070206:1170741017でfxは非対応なんだかんだといっていますがdocument.scriptsはdocument.getElementsByTagName('script')とニアリーイコールなので以下のコードを任意の場所に追加することでfx系でdocument.script…

document.scriptsと自分自身が属するscript要素を取得

IE(確か5からある気がす)とOpera(8で確認)は document.scripts というものがあります。これってdocument.getElementsByTagName('script')で取得できる奴と同等(まったく同じではない)です。まぁfxにはないけど…(fxでも対応させられるけど…) <html> <head> <script id="foo"> alert(documen</script></head></html>…

insertAdjacent.js

どっかで見たことあるんですが見つからない…というわけでfxでinsertAdjacent系が利用できるものをつくりました。これ使ってdocument.writeハックするとなんか面白いことできそうです。ちなみにinsertAdjacent系はIEとOperaでは利用可能です。お持ち帰りでお…

innerHTMLでdocument.writeする - その2

XMLHttpRequestで取得したHTMLをそのままinnerHTMLに挿入してそこにあるscriptもついでに実行したい場合には役に立つはずです。 って自分で書いていて実際にinnerHTMLにscriptを挿入して動かないっていうサンプルを公開していたのでそれを正常に動くようにし…

innerHTMLでdocument.writeする - その1

前回のエントリの続きです。defer属性指定しただけではdocument.writeしたときに順番が狂う。foo bar fooなら foo foo barと表示される。ノードツリーが完成した後にdocument.writeすると大変なことになるしなかなか利用しづらい面もあって、以下のようなコ…

innerHTMLでscriptする

innerHTMLにscriptを代入しても評価されず無視されるのはIEの仕様なのでいいとしてその回避策。最近、昔あの方法で出来たんだけどいつの間にかできなくなってるコードが出てきている気がします(気のせいにしておこう)。 以下は一般的な動かないコード。 <div id="foo"></div> <script type="text/javascript"> do</script>…

script要素のtextプロパティ

http://d.hatena.ne.jp/brazil/20061105/1162722198 http://rails.office.drecom.jp/takiuchi/archive/100 の中で記述されているscript要素にinnerHTML突っ込んでもうまく作動しない件。僕のIE6でもできないのでMSの月例更新で仕様変更になったのかと勝手に…

DOMの見慣れないメソッドHTMLElement.insertAdjacent〜

Faster DHTML in 12 Steps (MSDN) DHTMLの12の高速化テクのページの以下のようなコードのinsertAdjacentElementメソッド。(←DOM操作の高速化テク乗っているのでお勧めです。) SPANノードの直後に100個のSPANを追加するコード*1 var node; for (var i=0; i<10…

IEでHTMLElement.prototypeの代替手段

FireFoxなどにあるHTMLElementのprototypeに共有の便利メソッドを突っ込みたいという欲求があるんですがIEでは実装されていないのでうまくいきません。googleっても出てこねぇよ!ということで仕様読む。MSDN見ていたらどうやらIEではDOMイベントなどの定義…

エレメントの位置固定

よくJavaScriptでスクロールしても同じ位置にエレメントを固定させているテクがあり実装されているところも少なくない。でも僕はあんまり好きではない。というのもスクロールさせたさいに”チラツク”から嫌いです。ちらつかなければな…と思いこんなコードを実…

DOMに便利メソッドを突っ込む

IE用のgetComputedStyle互換コード書直し if(!this.getComputedStyle) { getComputedStyle = function(element) { element.getPropertyValue = getComputedStyle.getPropertyValue; return element; }; getComputedStyle.getPropertyValue = function(prop) …