Thousand Years このページをアンテナに追加 RSSフィード

2007-02-03

[][]insertAdjacent.js

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

ドキュメント

ソース

(function()
{
    if('HTMLElement' in this){
        if('insertAdjacentHTML' in HTMLElement.prototype){return;};
    }else{
        return;
    };

    function insert(w, n)
    {
        switch(w.toUpperCase())
        {
            case 'BEFOREEND':
                this.appendChild(n);
                break;
            case 'BEFOREBEGIN':
                this.parentNode.insertBefore(n, this);
                break;
            case 'AFTERBEGIN':
                this.insertBefore(n, this.childNodes[0]);
                break;
            case 'AFTEREND':
                this.parentNode.insertBefore(n, this.nextSibling);
                break;
        };
    };

    function insertAdjacentText(w, t){
        insert.call(this, w, document.createTextNode(t || ''));
    };

    function insertAdjacentHTML(w, h)
    {
        var r = document.createRange(); r.selectNode(this);
        insert.call(this, w, r.createContextualFragment(h));
    };

    function insertAdjacentElement(w, n)
    {
        insert.call(this, w, n);
        return n;
    };

    HTMLElement.prototype.insertAdjacentText = insertAdjacentText;
    HTMLElement.prototype.insertAdjacentHTML = insertAdjacentHTML;
    HTMLElement.prototype.insertAdjacentElement = insertAdjacentElement;
})();

ダウンロード

MillyCMillyC 2007/02/06 11:13 いつも拝見させていただいています。CSSのせいか右カラム(div.right)が本文(div.main)に重なっているようです。

MillyCMillyC 2007/02/06 11:14 あれ、IEだと見えてるや。私のFxの設定が悪いのかしら…。

shogo4405shogo4405 2007/02/06 13:49 コメントありがとうございます。このまえCSS手直したときにタグ閉じ忘れがあったのでそれが原因かと思います…。一応直しました。(もし改善なければキャッシュのクリアでも。)

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/shogo4405/20070203/1170430224
プロフィール

shogo4405

shogo4405

その辺にいます。

カレンダー
<< 2007/02 >>
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
最近のコメント