проблема с связью html и js

HTML

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Инвентаризация</title>
    <script type = "text/javascript" src = "eel.js">

    </script>
    <link rel="stylesheet" href="main.css">
</head>
<body>
    <div class="box1">
        <div class="buttons">
            <button id="add">Добавить</button>
            <button id="btn">Изменить</button>
            <button id="btn">Удалить</button>
            <button id="update">Обновить</button>
        </div>
    </div>   
    
    <input class="form-control" type="text" name="q" placeholder="Поиск по таблице" id="search-text" onkeyup="tableSearch()"    >         
            
    <div class="box2">
        <table id="table">
            <tr>
                <th>№ п/п</th>
                <th col-index = 1>Расположение
                    <select class="table-filter">
                        <option value="all"></option>
                    </select>
                </th>
                <th col-index = 2>Наименование
                    <select class="table-filter">
                        <option value="all"></option>
                    </select>
                </th>
                <th col-index = 3>Серийный номер
                    <select class="table-filter">
                        <option value="all"></option>
                    </select>
                </th>
                <th col-index = 4>Инвентарный номер
                    <select class="table-filter">
                        <option value="all"></option>
                    </select>
                </th>
            </tr>
        </table>
    </div>
    
    <script type="text/javascript" src="main.js">
        showData();
        getUniqueValuesFromColumn();
    </script>
</body>
</html>

JS

async function results() {
    let a = await eel.get_data()();
    localStorage.setItem("localData", JSON.stringify(a));
    var mytable = JSON.parse(localStorage.getItem('localData')); 
    console.log('Данные из локального хранилища:', mytable);
}
var arr = new Array();
function getData(){
    var str = localStorage.getItem('localData');
    if (str != null) {
        arr = JSON.parse(str);
    }
}
function showData(){
    results();
    getData();
    const [id, rasp, name, sn, inv] = [0, 1, 2, 3, 4]
    var tbl = document.getElementById('table');

    for(i = 0; i<arr.length; i++) {
        var r = tbl.insertRow();
        var cell1 = r.insertCell();
        var cell2 = r.insertCell();
        var cell3 = r.insertCell();
        var cell4 = r.insertCell();
        var cell5 = r.insertCell();

        cell1.innerHTML = arr[i][id];
        cell2.innerHTML = arr[i][rasp];
        cell3.innerHTML = arr[i][name];
        cell4.innerHTML = arr[i][sn];
        cell5.innerHTML = arr[i][inv];
    }

}
document.querySelector("#update").onclick = function(){
    for (var i = document.getElementById('table').getElementsByTagName('tr').length -1; i; i--) {
        document.getElementById('table').deleteRow(i);
    }
    showData();
}
function tableSearch() {
    var phrase = document.getElementById('search-text');
    var table = document.getElementById('table');
    var regPhrase = new RegExp(phrase.value, 'i');
    var flag = false;
    for (var i = 1; i < table.rows.length; i++) {
        flag = false;
        for (var j = table.rows[i].cells.length - 1; j >= 0; j--) {
            flag = regPhrase.test(table.rows[i].cells[j].innerHTML);
            if (flag) break;
        }
        if (flag) {
            table.rows[i].style.display = "";
        } else {
            table.rows[i].style.display = "none";
        }

    }
}
let enter = document.querySelector("#add");
enter.addEventListener("click", getadd);

async function getadd(){
    let key = 1;
    await eel.get_add(key);
    console.log(key)
}

Попытался перенести все функции в отдельный файл .js, но все перестало работать. До этого все находилось в файле html. Скорее всего проблема с eel, как можно это исправить?


Ответы (1 шт):

Автор решения: eugeshag

Попробуй написать вот так <script src="main.js"></script>, а функции вызывать в самом js файле.

→ Ссылка