查找更改<input />标记的value属性的脚本

时间:2012-03-13 15:59:54

标签: javascript html firebug

<form id="search" action="/search" method="get" autocomplete="off">
    <div>
        <input  type = "button" name = 'test_button" value = "test" />
    </div>
</form>

<script>
    document.getElementById("test_button").value = "changed_test"
</script>

正如上面的HTML代码所示,我已经定义了一个名为test_button且值为test的按钮,并使用脚本标记中的代码更改了它的值。

现在我正在调试一个大型网页,它在Linux中使用Firebug和Firefox这样的机制。

我想知道如何找到更改value的{​​{1}}属性的脚本,但网页太大,各种<input ... />和匿名函数都是自动的-executed使得几乎不可能手动找到特定的<script>

由于我在Linux,我不能使用任何Microsoft工具来搜索整个网页。我只有Firebug和Chrome。 Firebug能意识到吗?有没有人知道如何找到更改script的具体<script>

1 个答案:

答案 0 :(得分:28)

将这样的代码添加到文档中,紧跟在表单后面的按钮:

<script>
var node = document.getElementById("test_button");
Object.defineProperty(node, 'value', {
    set: function() { throw new Error('button value modified'); }
});
</script>

如果有人试图修改按钮的value

,则会抛出错误

error log

展开错误,然后单击显示的最后一个行号。这将直接转到设置按钮值的行。

offending script line

以下是演示:http://jsfiddle.net/XSJZN/

在Chrome 17中测试。