从控制台调用 Javascript 函数

问题描述 投票:0回答:7

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

javascript function google-chrome-devtools developer-tools
7个回答
84
投票

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

否则你只需执行

functionName();
并按回车即可。


30
投票

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

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


6
投票

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

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

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

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

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

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

图 1(火狐): https://i.stack.imgur.com/bkS7W.jpg

图片 2(Chrome):https://i.stack.imgur.com/cndGC.jpg


3
投票

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

  1. 您的函数在全局范围内。在这种情况下,只需打开一个控制台并将其命名为
    yourFunction()
  2. 您的函数的作用域位于其他一些函数内,并且不能全局访问。在这种情况下,您可以打开“源”选项卡,找到您的 .js 文件,在外部函数底部的任意位置放置一个断点(如果代码已经运行,您可能需要刷新页面)并调用
    yourFunction() 
    在控制台中。另外,在断点处,您可以在控制台中执行类似
    window.yourFuncRef = yourFunction
    的操作,以便稍后能够随时访问它。

3
投票

您可以使用

调用它
window.function_name()

或直接没有

window
喜欢

function_name()

2
投票

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

indirect
:

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

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

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

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

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

imported_fn
的结果:

indirect("imported_fn()");

使用

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


0
投票

我认为你的问题可能是你将“.js”文件作为模块导入。

<script type="module" src="example.js"></script>

我遇到了同样的问题,删除“type =“module””属性对我有用。

<script src="example.js"></script>
© www.soinside.com 2019 - 2024. All rights reserved.