ページレンダリングを妨げないdocument.writeの実装

とてもシンプルに自分自身が属する script 要素を取得
http://d.hatena.ne.jp/amachang/20061201/1164986067

document.writeをDOM仕様にする
http://nyarla.net/blog/javascript-tips1

あたりに着想を受けて、作ってみました。
http://la.ma.la/misc/js/lazy_writer/

特定のscript src内のdocument.writeをピンポイントに置き換えることができます。

制限事項としては、document.writeを使ってscriptタグを生成するようなコードの場合、IEではinnerHTMLにscriptを書いても実行されないという仕様があるので実行されません。その点を除けば、IFRAMEをdocument.writeで挿入するような、良くある広告系のdocument.writeを置き換えることが可能です。

過去にもdocument.writeを書き換えてナントカする話を書いたりしてるのですが、現在実行されているscript要素を判別する方法がわかったので、より実用的になっています。


WriteBacks

Posted by at 2007/04/12 (Thu) 23:22:12

Posted by at 2007/04/26 (Thu) 18:06:14

Posted by ワンルームマンション at 2008/10/21 (Tue) 15:01:29

Google Adsense:アドセンスを後から表示させる貼りつけるdocument.lazy_writer

Google Adsense を、ちょっと変わった位置に貼り付けたくて調べていたら、特定の場所に表示してくれるJavaScript があるようだったので、調べてみました。 document.lazy_writer というもの。これを使うと、Google Adsense の表示位置に、あらかじめ何か適当に表示しておき、ページの描画が終わってから、Adsenseを挿入してくれるよう。 しかし、作者のページには解説が少ないので、少し使い方を調べてみました。次のように使うようです。 1.lazy_writer.jsを どこかに設定。  delay : 1000という部分は、遅延時間なので変更可能。 2.</html>の後ろに、次のスクリプトを書く。 var adsense_url = 'http://pagead2.googlesyndication.com/pagead/show_ads.js';document.lazy_writer(adsense_url, function(str){ var id = "adsense_" + this.script_count; document.getElementById(id).innerHTML = str;}, {delay : 1000});実際のAdSense広告1のスクリプトタグをココに貼り付け。実際のAdSense広告2のスクリプトタグをココに貼り付け。  3.今までアドセンスを設置して...

Posted by うはうはアフィリエイト: ブログとサイト作り at 2009/11/23 (Mon) 07:58:45
TrackBack ping me at
http://la.ma.la/blog/diary_200612061928.trackback
Post a comment

writeback message: Ready to post a comment.







spam yoke. nanimo ireruna.