読者です 読者をやめる 読者になる 読者になる

自分自身が所属する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要素取得は不可能になってしまいますね。