проблема с связью 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 файле.