无法在 window.webpackJsonp 对象内的匿名函数上注入代码
Posted
技术标签:
【中文标题】无法在 window.webpackJsonp 对象内的匿名函数上注入代码【英文标题】:Can't inject code on anonymous function inside a window.webpackJsonp object 【发布时间】:2020-01-24 12:02:43 【问题描述】:好吧,我正在尝试在缩小的 javascript 中执行一个函数,以重现上下文菜单函数的行为。
我使用带有事件侦听器断点的 Chrome 开发工具,正如 Rory 在 this comment 上建议我的那样。而且我发现上下文菜单事件的回调来自这个路径:
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
知道哪些对象与此参数相关。
但是提示这个错误:
未捕获的语法错误:函数语句需要函数名。
所以我不知道从哪里继续......
【问题讨论】:
【参考方案1】:将eval(...)
更改为eval('(' + ... + ')')
对我有用。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval 的定义说 eval
采用表达式,例如 function ()
或语句,例如 function foo ()
,所以你已经被 eval
实现错误所困扰。
【讨论】:
以上是关于无法在 window.webpackJsonp 对象内的匿名函数上注入代码的主要内容,如果未能解决你的问题,请参考以下文章
无法对非静态方法 getAssets() 进行静态引用 - 无法在片段中播放音频