在Chrome的JavaScript控制台中,如何调用属于我正在查看的网页中包含的.js文件的函数?
答案 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
图片2(Chrome):http://imgur.com/a/dLnRX
答案 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
仍保留在控制台的上下文中,而我们需要在模块的上下文中执行。