我想知道是否有办法检查是否从浏览器的控制台或源代码调用了 javascript 函数。
我定义了一个可以检查它是来自控制台还是来自页面的函数,但它只适用于谷歌浏览器,它不适用于 Firefox,我没有测试其他浏览器
function fromConsole()
{
var Caller = arguments.callee.caller;
while(Caller.caller != null)
Caller = Caller.caller;
return (Caller.toString().indexOf("function (expression, objectGroup,"))!=-1;
}
此功能如何工作
这个函数查找调用我们函数的顶部函数。在谷歌浏览器中,如果从控制台调用顶部函数的定义function (expression, objectGroup,
在Firefox中包含此字符串,则没有函数
让我给你详细解释一下
假设我们有这个例子
function a()
{
b();
}
function b()
{
return c();
}
function c()
{
console.log(fromConsole());
}
如果我们从页面调用函数 a() ,它在控制台中显示为 false (因为顶部函数是 a() )但是,如果我们从控制台调用它,它显示为 true,因为顶部函数是 this " function (expression, objectGroup,...
"
在 Firefox 中,无论您是从控制台还是从您的页面调用函数,顶级函数始终是 a()
我的问题是:有没有办法知道函数是否从控制台调用?