从控制台调用Javascript函数


Answers:


72

如果它在一个封闭中,我很确定你不会。

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


1
不适合我:functionName();在Firebug中,可以在chrome开发人员工具中显示“未定义”。
lrkwz

81
undefined是函数的返回值。Chrome的开发工具会自动显示从控制台调用的所有函数的返回结果。如果不起作用,您会看到ReferenceError: functionName is not defined红色。
凯文·恩尼斯

23

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

当然,如果您需要在文档加载后注册该功能,则不能这样做。但是您可能可以解决此问题。


非常感谢Tony。完美的答案
Shah

6

这是一个较旧的线程,但我只是搜索并找到了它。我不熟悉Web开发工具:主要是Firefox开发工具(Firefox v.51),也有Chrome DevTools(Chrome v.56)]。

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

https://developer.mozilla.org/zh-CN/docs/Tools/Scratchpad

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

我还添加了Chrome浏览器的“ Scratch JS”扩展名:它似乎提供了与Firefox开发人员工具中的Scratchpad相同的功能(下面的屏幕截图)。

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

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

在此处输入图片说明

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

在此处输入图片说明


2

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


1

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

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

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

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

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

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

indirect("imported_fn()");

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.