为什么当我们在 html 文档中的“onclick”中调用函数时,如果存在“import”,则不会在 JavaScript 模块文件中读取该函数?
在这种情况下是否有再次使用“onclick”的解决方案?
例如,“onclick”调用以下内容:
<input type="button" value="-" class="dark" onclick="mathfa('-')">
这个功能:
function mathfa(ma) {
if (ma == "Percent") {
varable.po = false;
varable.eva = false;
varable.per = true;
if (varable.box.value.indexOf("^") == -1
&& varable.box.value.indexOf("+") == -1
&& varable.box.value.indexOf("-") == -1
&& varable.box.value.indexOf("*") == -1
&& varable.box.value.indexOf("/") == -1
&& varable.box.value.indexOf("%") == -1) {
varable.box.value += "%*";
} else {
varable.box.value = varable.box2.value + "%*";
}
} else if (ma == 'pow') {
per = false;
eva = false;
po = true;
if (varable.box.value.indexOf("^") == -1
&& varable.box.value.indexOf("+") == -1
&& varable.box.value.indexOf("-") == -1
&& varable.box.value.indexOf("*") == -1
&& varable.box.value.indexOf("/") == -1
&& varable.box.value.indexOf("%") == -1) {
varable.box.value += "^";
} else {
varable.box.value = varable.box2.value + "^";
}
} else {
varable.po = false;
varable.per = false;
varable.eva = true;
varable.box.value += ma;
}
}
在 JavaScript 模块文件中:
<script type="module" src="http://localhost:8080/scripts/script.js"></script>
我什至将此函数放在另一个文件中并将其导入到主 JavaScript 文件中,但它不起作用。 此外,我知道如果我通过“addeventlistener”调用该函数,它会起作用,但正如我提到的,我的问题是使用“onclick”。
使用“onclick”需要该函数是全局(窗口)对象的属性。您可以添加
window.mathfa = mathfa
;到模块。
使用
.addEventListener()
通常被认为更好,因为它更灵活。