我有一个简单的HTML页面,如下导入了一个JS模块:
.. snip
<button onclick="btnClick()">Go!</button>
<script type="module">
import { func1 } from './utils.js'
function btnClick() {
func1()
}
</script>
点击按钮会出现错误:btnClick()未定义。
为什么会出现这种情况?如何将这些功能恢复到正确的范围内?
我有一个简单的HTML页面,如下导入了一个JS模块:
.. snip
<button onclick="btnClick()">Go!</button>
<script type="module">
import { func1 } from './utils.js'
function btnClick() {
func1()
}
</script>
点击按钮会出现错误:btnClick()未定义。
为什么会出现这种情况?如何将这些功能恢复到正确的范围内?
<button onclick="btnClick()">Go!</button>
<script type="module">
import { func1 } from './utils.js'
function btnClick() {
func1()
}
// variable function
window.btnClick = btnClick;
// or anonymous function
window.btnClick = function(youCanSetParams){
func1()
}
</script>
window._myFns = { btnClick, onLoad }
这样的方式。 - user949300来自 "module" 的变量无法从外部访问,因此请使用 type="text/javascript"
<script type="text/javascript">
function btnClick() {
console.log('here')
}
</script>
<button onclick="btnClick()">Go!</button>
<script type="module">
import { func1 } from './utils.js'
window.addEventListener('click' , e=> {
switch(e.target.id){
case 'btnGo':
btnClick();
break;
}
})
function btnClick() {
func1()
}
</script>
<html>
<button id="btnGo">Go!</button>
</html>