75

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

4

6 回答 6

76

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

否则,您只需执行functionName();并点击返回即可。

于 2012-01-29T16:55:37.763 回答
27

控制台将返回 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!'))

当然,如果您需要在文档加载后注册该功能,那么您就无法做到这一点。但你也许可以解决这个问题。

于 2014-07-25T11:23:09.003 回答
6

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

我无法从开发人员工具控制台运行功能,但后来我发现了这个

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

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

我还添加了 Chrome 的“Scratch JS”扩展:看起来它提供了与 Firefox 开发者工具中的 Scratchpad 相同的功能(截图如下)。

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

图 1(火狐):http: //imgur.com/a/ofkOp

在此处输入图像描述

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

在此处输入图像描述

于 2017-02-18T21:31:06.697 回答
3

您可以使用调用它

window.function_name()

或直接不window喜欢

function_name()
于 2012-01-29T16:56:24.253 回答
2

基本上,这里有两种情况:

  1. 您的功能在全球范围内。在这种情况下,只需打开一个控制台并调用它yourFunction()
  2. 您的函数被限定在其他一些函数内,并且不能全局访问。在这种情况下,您可以打开 Sources 选项卡,找到您的 .js 文件,在外部函数底部的任意位置放置断点(如果代码已经运行,您可能需要在此之后刷新页面)并yourFunction()在控制台中调用. 此外,在断点时,您可以window.yourFuncRef = yourFunction在控制台中执行类似操作,以便以后随时访问它。
于 2017-11-25T09:51:40.837 回答
1

我刚刚发现了这个问题。我能够通过使用间接来解决它。在每个模块中定义一个函数,让我们调用它indirect

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

使用每个模块中的该函数,您就可以在其上下文中执行任何代码。

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

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

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

indirect("imported_fn()");

使用eval是我的第一个想法,但它不起作用。我的假设是eval从控制台调用仍然在控制台的上下文中,我们需要在模块的上下文中执行。

于 2018-09-24T19:40:01.457 回答