显然,由于最近的骗局,开发人员工具被人们利用来发布垃圾邮件,甚至用来"破解"帐户.Facebook已经阻止了开发人员工具,我甚至无法使用控制台.

他们是怎么做到的??One Stack Overflow帖子声称这是不可能的,但Facebook证明他们错了.
只需转到Facebook并打开开发人员工具,在控制台中键入一个字符,然后弹出此警告.无论你投入什么,它都不会被执行.
这怎么可能?
他们甚至在控制台中阻止了自动完成:

我正在开发一个体积庞大的丰富网页JavaScript应用程序.由于某种原因,最近的更改导致它随机挂起浏览器.
我怎样才能缩小问题所在?由于浏览器没有响应,我没有看到任何错误,也无法Break on next使用FireBug.
我可以覆盖Function对象的行为,以便我可以在每个函数调用之前注入行为,然后继续正常吗?具体来说,(虽然一般的想法本身很有趣)我可以在每个函数调用时登录到控制台而无需在任何地方插入console.log语句吗?那么正常的行为还在继续吗?
我确实认识到这可能会产生严重的性能问题; 即使在我的开发环境中,我也无意进行此操作.但如果它工作,似乎是一个优雅的解决方案,以获得运行代码1000米的视图.我怀疑答案将向我展示更深入的javascript.
当我在RUNTIME与基于AJAX的应用程序交互时,我希望控制台能够吐出它所调用的所有函数.(所以没有堆栈跟踪,或断点,或分析或任何东西)
例如,假设我在页面上按了一个按钮.我希望它能够在发生这种情况时返回它经历的所有功能:
所以我会在控制台中看到类似的东西(当我按下按钮时):
1. button1Clicked();
2. calculating();
3. printingResults();
Run Code Online (Sandbox Code Playgroud)
这基本上意味着button1Clicked()调用calculate()调用了printingResults()
是否有实用程序,插件,浏览器或者某种语言可以执行此操作?我正在使用谷歌浏览器,顺便说一句.
ps和NO我不想通过每个函数并添加一个"console.log("inside function X")"太多工作的b/c
pps作为一个额外的奖励,我希望看到传递给函数的参数,但也许是推动它.:>
我WebBrowser在C#应用程序中有一个控件.webbrowser在用户的控制之下,也就是说,他可以加载他的计算机可以在Web上访问的任何网页(当然受限于代理,主机文件等).
我需要知道并在webbrowser组件中加载的页面内有javascript调用时收到通知.
第一个例子:给出这样的链接
<a href="javascript:void(0)" onclick="jsFunct();">test</a>
Run Code Online (Sandbox Code Playgroud)
当用户点击链接时,我需要知道已经调用了函数"jsFunct".
第二个例子:给出一个叫的话
<script type="text/javascript">
window.setTimeout("jsFunct()", 1000);
</script>
Run Code Online (Sandbox Code Playgroud)
我需要知道,在执行脚本1秒后,调用了函数jsFunct.
最好的方法是在调用函数时触发事件.如果事件可以执行javascript代码,或者至少是参数中的函数名称,那也会很棒.
编辑:
即使问题与webbrowser组件有关,任何允许用户检测javascript激活(甚至通过js)的东西也没关系,能够注入处理javascript事件的js并将其传递给触发某些事件的wb控件它可以处理.
我有这样的简单课程:
module.exports = class MyClass {
function middleware() {
console.log('call me before')
}
function a() {
}
function b() {
}
function c() {
}
}
Run Code Online (Sandbox Code Playgroud)
所以想法是,当有人调用函数 a、b、c 时,我想在执行 a、b、c 之前调用中间件。我该怎么做?
所以,我可以将 middleware() 放在每个函数中,但我想要一些动态的方法来做到这一点。
我想记录发出请求的人的user_id以及为javascript类调用的每个方法的方法名称.例如:
35 - log_in
35 - list_of_other_users
78 - log_in
35 - send_message_to_user
35 - connect_to_redis
78 - list_of_other_users
Run Code Online (Sandbox Code Playgroud)
由于一切都是异步的,用户35和78可能同时在做东西.所以我想确保每个日志行都以他们的user_id开头,所以我可以grep它,并且一次只能看到一个用户的活动.
有没有一种超级聪明的方法可以在不向每个方法添加记录器语句的情况下执行此操作?
我开始研究JS的动态分析工具,我想不引人注目地描述整个环境.我基本上遍历各种上下文,深入挖掘对象,每次我点击一个函数,我都会陷入其中.现在,这种方法相对较好,除了在处理jQuery/prototype等库时它会中断.
到目前为止,这是我的代码(尽我所能评论):
var __PROFILER_global_props = new Array(); // visited properties
/**
* Hook into a function
* @name the name of the function
* @fn the reference to the function
* @parent the parent object
*/
function __PROFILER_hook(name, fn, parent) {
//console.log('hooking ' + name + ' ' + fn + ' ' + parent);
if (typeof parent == 'undefined')
parent = window;
for (var i in parent) {
// find the right function
if (parent[i] === fn) {
// …Run Code Online (Sandbox Code Playgroud) javascript ×8
browser ×2
c# ×1
coffeescript ×1
debugging ×1
dom-events ×1
facebook ×1
function ×1
hook ×1
logging ×1
node.js ×1
recursion ×1
runtime ×1
trace ×1