不读取JavaScript模块文件中的函数,通过在html文档中调用onclick

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

为什么当我们在 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”。

javascript html module onclick
1个回答
0
投票

使用“onclick”需要该函数是全局(窗口)对象的属性。您可以添加

window.mathfa = mathfa
;到模块。

使用

.addEventListener()
通常被认为更好,因为它更灵活。

© www.soinside.com 2019 - 2024. All rights reserved.