Firefox3 + Firebug 1.2.0b3 でハマった
なんかよくわからないんだけど
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja" dir="ltr">
<head>
<script type="text/javascript" src="uuu.js"></script>
<script type="text/javascript" src="test.js"></script>
<script type="text/javascript" src="foobar.js"></script>
</head>
<body>
</body>
</html>// uuu.js
typeof(console);
/*
* typeof(console) を src でよみこんだスクリプトでやるとダメ
* typeof(window["console"]); もだめ
*
*/// test.js
(function() {
var scripts = document.getElementsByTagName('script');
var script = scripts[scripts.length - 1];
alert(script.src);
})();こうすると alert で test.js が alert されない。なぜか script.src が undefined になってしまう。Firebug を Disabled にすれば大丈夫。これ困る……
alert(window.__lookupGetter__("console"));してみると
function () {
return window.loadFirebugConsole();
}ってなってる。
console を参照できるかどうか試すコードを書きたいなら
if (
(
typeof(window["__lookupGetter__"]) == "function" &&
typeof(window.__lookupGetter__("console")) == "undefined" && typeof(window["console"]) == "undefined"
) ||
typeof(window["console"]) == "undefined"
) {
alert("console is undefined");
}と書いたほうがいいっぽいなぁ。もちろん Firebug の変更によってまただめになるだろうから、とても adhoc すぎてウンコなんだけど……