document.scriptsと自分自身が属するscript要素を取得
IE(確か5からある気がす)とOpera(8で確認)は document.scripts というものがあります。これってdocument.getElementsByTagName('script')で取得できる奴と同等(まったく同じではない)です。まぁfxにはないけど…(fxでも対応させられるけど…)
<html> <head> <script id="foo"> alert(document.scripts.length); // 1 alert(document.scripts[0].id); // foo </script> <script id="bar"> alert(document.scripts.length); // 2 alert(document.scripts[1].id); // bar </script> </html>
これを利用すると
document.scriptsを利用して自分自身が属するscript要素を取得ができる。元ネタのid:amachangさんのIT戦記から少し引用。
DOM は構築されるときに、上から順番に構築される。そして、script タグがあると、 script 要素を構築したあとに、スクリプトを実行する。(とてもシンプルに自分自身が属する script 要素を取得 - IT戦記より引用)
ということなので構築中のscript要素はdocument.scripts[document.scripts.length-1];で取得可能ということに最近気づいた。
<html> <head> <script id="foo"> current = document.scripts[document.scripts.length-1]; alert(current.id); // foo </script> <script id="bar"> current = document.scripts[document.scripts.length-1]; alert(current.id); // bar </script> </head> <body></body> </html>
あぁ2月6日か…。無駄に年とった(22)ので記念エントリーでした…(--;