从控制台调用Javascript函数

时间:2012-01-29 16:54:02

标签: javascript function google-chrome-devtools developer-tools

在Chrome的JavaScript控制台中,如何调用属于我正在查看的网页中包含的.js文件的函数?

5 个答案:

答案 0 :(得分:63)

如果它在封闭内,我很确定你不能。

否则你只需functionName();并点击返回。

答案 1 :(得分:21)

控制台将返回ReferenceError的示例是将函数放入JQuery文档就绪函数

//this will fail
$(document).ready(function () {
          myFunction(alert('doing something!'));
          //other stuff
}

成功将功能移到文档就绪功能

之外
//this will work
myFunction(alert('doing something!'));
$(document).ready(function () {

          //other stuff
}

然后在控制台窗口中,键入带有'()'的函数名称以执行函数

myFunction()

同样有用的是能够打印出功能体以提醒自己功能的作用。通过从函数名称

中取消'()'来完成此操作
function myFunction(alert('doing something!'))

当然,如果您需要在加载文档后注册该功能,那么您无法执行此操作。但是你可以解决这个问题。

答案 2 :(得分:6)

这是一个较旧的主题,但我只是搜索并找到它。我不熟悉使用Web开发者工具:主要是Firefox开发人员工具(Firefox v.51),还有Chrome DevTools(Chrome v.56)]。

我无法从Developer Tools控制台运行函数,但后来我找到了

https://developer.mozilla.org/en-US/docs/Tools/Scratchpad

我可以将代码添加到Scratchpad,突出显示并运行一个函数,根据附加的屏幕截图输出到控制台。

我还添加了Chrome“Scratch JS”扩展程序:看起来它提供了与Firefox Developer Tools中的Scratchpad相同的功能(截图如下)。

https://chrome.google.com/webstore/detail/scratch-js/alploljligeomonipppgaahpkenfnfkn

图片1(Firefox): http://imgur.com/a/ofkOp

enter image description here

图片2(Chrome):http://imgur.com/a/dLnRX

enter image description here

答案 3 :(得分:1)

您可以使用window.function_name()或直接使用function_name()

来调用它

答案 4 :(得分:0)

我刚刚发现了这个问题。我能够通过使用间接解决它。在每个模块中定义一个函数,将其命名为indirect

function indirect(js) { return eval(js); }

在每个模块中都有该功能,然后可以在其上下文中执行任何代码。

例如如果您的模块中有此导入:

import { imported_fn } from "./import.js";

然后您可以通过执行以下操作从控制台获得调用imported_fn的结果:

indirect("imported_fn()");

使用eval是我的第一个想法,但这没有用。我的假设是,从控制台调用eval仍保留在控制台的上下文中,而我们需要在模块的上下文中执行。