自分自身が所属するscript要素を取得する (Firebug対応版)
Firebugが有効になっている環境でid:amachangのスクリプト(とてもシンプルに自分自身が属する script 要素を取得 - IT戦記)が動作しなかったので,書き換えてみました。
document.getCurrentScript = function() { var ss = document.getElementsByTagName('script'); for(var i = ss.length-1; i >= 0; i--) if(ss[i].id.search('_firebug') != 0) return ss[i]; }
書き換えついでに404 Not Foundで指摘されている問題点(document.writeでHTMLタグが追加されるとscriptが取得できなくなる)を修正してみましたが,document.writeでscript要素を追加すると正しく動作しません(新しく追加されたscript要素を取得してしまう)。script要素を先祖にもつscript要素は取得しない,等の対策が考えられますが面倒なので実装していません。
今回はFirebug対策だけだったので簡単だったのですが,ページ内にidが付いていないscript要素を埋め込む拡張機能なんてのが登場したらこの方法でのscript要素取得は不可能になってしまいますね。