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

发布于 2024-10-14 15:24:42 字数 308 浏览 4 评论 0原文

假设这个函数...

function foo(param){
// original works
}

已经存在于 html 文档中。

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

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

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

我该怎么做?

Lets say this function...

function foo(param){
// original works
}

is already in-place in an html document.

I have a bookmarklet that injects an external script to the document. From that script, I want to modify the behavior of foo() function into this...

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

bar() is a new function in the injected script.
I have no problem duplicating foo in the injected script.

How do I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

季末如歌 2024-10-21 15:24:42

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

function foo(param){
// original works
}

var old_foo = foo;

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

Everything in javascript can be an object, including functions. With this in mind, you can create a duplicate of the old function, then override the new one while referencing the duplicate:

function foo(param){
// original works
}

var old_foo = foo;

function foo(param) {
 old_foo(param);
 bar(param);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文