如何通过注入脚本修改/扩展javascript函数?

时间:2011-01-27 02:27:07

标签: javascript xss bookmarklet

让我们说这个功能......

function foo(param){
// original works
}

已经在html文档中就位。

我有一个为文档注入外部脚本的书签。从那个脚本,我想将foo()函数的行为修改为...

function foo(param){
// original works
bar(param);
}

bar()是注入脚本中的新函数。 我在注入的脚本中复制foo没有问题。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

javascript中的所有内容都可以是一个对象,包括函数。考虑到这一点,您可以创建旧函数的副本,然后在引用副本时覆盖新函数:

function foo(param){
// original works
}

var old_foo = foo;

function foo(param) {
 old_foo(param);
 bar(param);
}