首页 > 解决方案 > 如何将 JavaScript 注入匿名作用域

问题描述

我看到了Inject javascript code into anonymous function scope的问题,但那里的答案似乎根本不理解,所以我提出了一个新问题,以澄清此事。

假设网站上有一些代码,例如:

(function() {
    function method() {
        //do some secret stuff
    }
})();

而且我无法访问源代码;假设我想制作某种能够访问“方法”的插件或扩展。这应该怎么做?

我知道,一般来说,这是一个匿名函数表达式,因此其作用域的内容是隐藏的,但例如,通过 chrome 扩展,它可以在页面加载之前将 JavaScript 代码注入页面。这样注入的代码是否能够以某种方式更改源代码本身,在匿名函数内部添加全局引用到方法?例如,在前面的代码之前执行的操作是修改 script 标签的 innerHTML?

或者也许制作一个新的浏览器,使用 V8 的修改版本,允许访问匿名功能,并在线托管该浏览器并使用 NodeJS 控制它,并在客户端浏览网站,纯粹通过服务器的镜头 -侧修改JavaScript引擎浏览器?也许还有另一种方法?

如果脚本不是内联在页面上,而是指向另一个包含匿名函数的文件的链接,例如该链接的 HTTP 引用,指向自己的服务器,它将处理 JavaScript 代码并将全局变量引用插入到匿名函数的底部,还是完全删除匿名函数?

例如,使用 chrome 扩展,可以重定向 HTTP 请求。因此,只需将原始 URL 作为 GET 请求附加到您的服务器,以上内容变为 ? 有没有更好的办法?

标签: javascript

解决方案


推荐阅读