Firebugを使って無名関数への参照を手に入れる
Firebugで元のJavaScriptのコードに手を入れずにdebug用のconsole出力を入れる方法 - 文殊堂の応用編
参照が欲しい無名関数の中の適当な所で、
breakpointを設定し、条件を↓にする。
(window.someFunction = arguments.callee),false
この無名関数が1度でも実行されれば、someFunctionで参照できるようになっている。
someFunction.toSource();
とかやると以下のようになる。
(function ($) {var map = new Array;$.Watermark = {ShowAll: function () {for (var i = 0; i < map.length; i++) {if (map[i].obj.val() == "") {map[i].obj.val(map[i].text);map[i].obj.css("color", map[i].WatermarkColor);} else {map[i].obj.css("color", map[i].DefaultColor);}}}, HideAll: function () {for (var i = 0; i < map.length; i++) {if (map[i].obj.val() == map[i].text) {map[i].obj.val("");}}}};$.fn.Watermark = function (text, color) {if (!color) {color = "#aaa";}return this.each(function () {var input = $(this);var defaultColor = input.css("color");map[map.length] = {text: text, obj: input, DefaultColor: defaultColor, WatermarkColor: color}; function clearMessage() {if (input.val() == text) {input.val("");}input.css("color", defaultColor);} function insertMessage() {if (input.val().length == 0 || input.val() == text) {input.val(text);input.css("color", color);} else {input.css("color", defaultColor);}} input.focus(clearMessage);input.blur(insertMessage);input.change(insertMessage);insertMessage();});};})
$(document).ready()周りの動作確認とかに便利なんじゃないかと思う。
課題はminifyされたJavaScriptでは使えないこと。