我在JavaScript中将函数的名称作为字符串.如何将其转换为函数指针,以便稍后调用?
根据具体情况,我可能还需要将各种参数传递给方法.
一些功能可能采取的形式namespace.namespace.function(args[...]).
我正在测试ES6模块,并希望让用户使用onclick以下方法访问一些导入的函数:
的test.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Module Test</title>
</head>
<body>
<input type="button" value="click me" onclick="hello();"/>
<script type="module">import {hello} from "./test.js";</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
test.js:
export function hello() {console.log("hello");}
Run Code Online (Sandbox Code Playgroud)
当我单击按钮时,开发人员控制台会说:ReferenceError:未定义hello.如何从模块导入函数,以便它们可用作onclick函数?
我正在使用Firefox 54.0 dom.moduleScripts.enabled设置为true.
我正在努力使用 javascript 模块......
我有一个 html 文件和一个 JS 模块。我在 javascript 文件中定义了一个函数,我想从 HTML 页面调用该函数。这是我的代码
索引.html
<html>
<head>
<script type="module" src="app.js"></script>
</head>
<body>
<button onclick="greetFromHtml();">greetFromHtml</button>
<button onclick="greetFromModule()"> greetFromModule</button>
<script type="text/javascript">
function greetFromHtml(){
alert('Hello');
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
应用程序.js
function greet(){
alert('Hello');
}
Run Code Online (Sandbox Code Playgroud)
greetFromHtml 按钮工作正常。当我单击greetFromModule按钮时,出现以下错误:hello is not defined at HTMLButtonElement.onclick
如果我type="module"从标头中删除,一切正常,但是由于其他原因我需要使用模块,所以这不是一个好的解决方案。
我看过几篇文章说我需要导入/导出或使用窗口,但我不知道该怎么做。请问有人可以提供答案吗?理想情况下,实现它的最简单方法
请参阅下面对我审查过的一些问题的参考:
编辑2 答案中的代码正在运行。我只是尝试在本地运行,但我知道您需要一台服务器,因此如果您看到相同的错误,请将站点上传到服务器或使用本地服务器。