嗯,我正在尝试在缩小的Javascript中执行一个函数,以重现上下文菜单函数的行为。
正如Rory在this comment上建议的那样,我将Chrome开发人员工具与事件监听器断点一起使用。我发现上下文菜单事件的回调来自此路径:
window.webpackJsonp[1][1][5754]
在索引器之后具有此匿名功能:
5754: function(t, n, e) {
"use strict";
// ...
}
在this question上,有人建议使用此代码:
eval(doSomething.toString().replace(/}\s*$/, ' return id; $&');
我尝试注入此代码:
eval(window.webpackJsonp[1][1][5754].toString().replace(/}\s*$/, ' console.log(t); console.log(n); console.log(e); $&'));
我用console.log
知道哪些对象与此参数相关。
但是提示此错误:
未捕获的SyntaxError:函数语句需要函数名称。
所以我不知道从哪里继续...
将eval(...)
更改为eval(Object(...))
对我有用。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval处的定义表示eval
同时使用了function () {}
等表达式和例如function foo () {}
的语句,因此您被eval
实现错误所困扰。