Почему в Виндовс 10 не загружается страница с экспертной системой на Javascript из-за антивируса?
Предыдущая версия, написанная другим человеком, состояла из следующих нескольких файлов. Она имела недостаток, что работала только на ПК, а в браузере на Андроид нет. Не отображались чекбоксы и не нажимались кнопки.
Так как нужно было, чтобы работало и в Андроид, человек объединил всё в один файл и после этого антивирус Виндовс 10 не стал пропускать этот файл через браузер на ПК, когда пытался скачать его.
Это прототип для написания более сложной версии на её основе. На скриншоте ещё более ранняя версия, где файлы базы выбираются вручную через кнопки-окошки выбора, это было убрано позднее и база подгружается сама или находится в самом коде html в последней версии.
index.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Рецепты</title> <style> hr { border: none; background-color: black; color: black; height: 2px; } </style> </head> <body> <div id="input-container"></div> <button id="submit">Обработать</button> <button id="clear">Очистить</button> <button id="check-all">Выбрать всё</button> <p id="answer"></p> <script> window.recipes = [ { "name": "Пицца", "ingredients": [ "Мука", "Вода", "Соль", "Колбаса", "Помидоры", "Соус" ] }, { "name": "Хлеб", "ingredients": ["Мука", "Вода", "Соль"] }, { "name": "Кекс", "ingredients": ["Мука", "Вода", "Яйца", "Соль", "Сахар"] } ] window.ingredients = [ "Мука", "Вода", "Сахар", "Яйца", "Соль", "Колбаса", "Помидоры", "Соус" ] // функция переводит русские слова на латиницу это нужно для создания уникальных id для checkbox-ов function rus_to_latin ( str ) { var ru = { 'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', 'е': 'e', 'ё': 'e', 'ж': 'j', 'з': 'z', 'и': 'i', 'к': 'k', 'л': 'l', 'м': 'm', 'н': 'n', 'о': 'o', 'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u', 'ф': 'f', 'х': 'h', 'ц': 'c', 'ч': 'ch', 'ш': 'sh', 'щ': 'shch', 'ы': 'y', 'э': 'e', 'ю': 'u', 'я': 'ya', 'ъ': 'ie', 'ь': '', 'й': 'i' }, n_str = []; for ( var i = 0; i < str.length; ++i ) { n_str.push( ru[ str[i] ] || ru[ str[i].toLowerCase() ] == undefined && str[i] || ru[ str[i].toLowerCase() ].replace(/^(.)/, function ( match ) { return match.toUpperCase() }) ); } return n_str.join(''); } // рецепты const recipes = window.recipes; // все рецепты из полученного файла const button = document.querySelector("#submit"); const answer = document.querySelector("#answer"); // кнопка обработки. Не работает, пока не загружен файл button.addEventListener("click", () => { // список всех выбранных ингредиентов const selected = [...document.querySelectorAll("input[id]:checked")].map( (input) => input.id ); answer.innerHTML = ""; // очистка ответа let lines = 0; //сравнение массива выбранных ингредиентов с массивом всех ингредиентов let intersectionsList = []; let intersections; for (recipe of recipes) { intersections = recipe.ingredients.filter((item) => selected.includes(rus_to_latin(item).toLowerCase())) recipeIntersections = {"name": recipe.name, "intersections": intersections} // словарь {имя, пересечения} intersectionsList.push(recipeIntersections); // добавляем словарь в список } // сортировка intersectionsList.sort((a, b) => { return b.intersections.length-a.intersections.length; }); // вывод на экран ингредиентов for (i of intersectionsList) { if (i.intersections.length !== 0){ let line = document.createElement("hr"); let nextLine = document.createElement("br"); answer.append(i.intersections.join(", ") + ": " + i.name); answer.append(nextLine); answer.append(line); lines++; } } if (lines === 0){ answer.innerHTML = "Таких рецептов нет!"; } }); // ингредиенты let ingredients = window.ingredients; let inputContainer = document.getElementById("input-container") inputContainer.innerHTML = ""; // вывод всех ингредиентов из файла for(let i = 0; i<ingredients.length; i++) { let ingredientCheckbox = document.createElement("input") ingredientCheckbox.id = rus_to_latin(ingredients[i]).toLowerCase(); ingredientCheckbox.type = "checkbox" let ingredientLabel = document.createElement("label") ingredientLabel.for = ingredientCheckbox.id ingredientLabel.id = ingredientCheckbox.id + "-label" ingredientLabel.innerHTML = ingredients[i] + "n" let nextLine = document.createElement("br") inputContainer.append(ingredientCheckbox); inputContainer.append(ingredientLabel); inputContainer.append(nextLine) } // кнопка очистки выбора let clearButton = document.getElementById("clear") clearButton.addEventListener("click", () => { const selected = [...document.querySelectorAll("input[id]:checked")].map( (input) => input.id ); for (ingredient of selected) { const getInput = document.getElementById(ingredient) getInput.checked = false; } }); // кнопка "Выбрать все" let checkAllButton = document.getElementById("check-all") checkAllButton.addEventListener("click", () => { const inputs = [...document.querySelectorAll("input[id]")].map( (input) => input.id ); for (ingredient of inputs) { const getInput = document.getElementById(ingredient) getInput.checked = true; } }); </script> </body> </html> |
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Рецепты</title> <style> hr { border: none; background-color: black; color: black; height: 2px; } </style> </head> <body> <div id="input-container"></div> <button id="submit">Обработать</button> <button id="clear">Очистить</button> <button id="check-all">Выбрать всё</button> <p id="answer"></p> <script> window.recipes = [ { "name": "Пицца", "ingredients": [ "Мука", "Вода", "Соль", "Колбаса", "Помидоры", "Соус" ] }, { "name": "Хлеб", "ingredients": ["Мука", "Вода", "Соль"] }, { "name": "Кекс", "ingredients": ["Мука", "Вода", "Яйца", "Соль", "Сахар"] } ] window.ingredients = [ "Мука", "Вода", "Сахар", "Яйца", "Соль", "Колбаса", "Помидоры", "Соус" ] // функция переводит русские слова на латиницу это нужно для создания уникальных id для checkbox-ов function rus_to_latin ( str ) { var ru = { 'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', 'е': 'e', 'ё': 'e', 'ж': 'j', 'з': 'z', 'и': 'i', 'к': 'k', 'л': 'l', 'м': 'm', 'н': 'n', 'о': 'o', 'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u', 'ф': 'f', 'х': 'h', 'ц': 'c', 'ч': 'ch', 'ш': 'sh', 'щ': 'shch', 'ы': 'y', 'э': 'e', 'ю': 'u', 'я': 'ya', 'ъ': 'ie', 'ь': '', 'й': 'i' }, n_str = []; for ( var i = 0; i < str.length; ++i ) { n_str.push( ru[ str[i] ] || ru[ str[i].toLowerCase() ] == undefined && str[i] || ru[ str[i].toLowerCase() ].replace(/^(.)/, function ( match ) { return match.toUpperCase() }) ); } return n_str.join(''); } // рецепты const recipes = window.recipes; // все рецепты из полученного файла const button = document.querySelector("#submit"); const answer = document.querySelector("#answer"); // кнопка обработки. Не работает, пока не загружен файл button.addEventListener("click", () => { // список всех выбранных ингредиентов const selected = [...document.querySelectorAll("input[id]:checked")].map( (input) => input.id ); answer.innerHTML = ""; // очистка ответа let lines = 0; //сравнение массива выбранных ингредиентов с массивом всех ингредиентов let intersectionsList = []; let intersections; for (recipe of recipes) { intersections = recipe.ingredients.filter((item) => selected.includes(rus_to_latin(item).toLowerCase())) recipeIntersections = {"name": recipe.name, "intersections": intersections} // словарь {имя, пересечения} intersectionsList.push(recipeIntersections); // добавляем словарь в список } // сортировка intersectionsList.sort((a, b) => { return b.intersections.length-a.intersections.length; }); // вывод на экран ингредиентов for (i of intersectionsList) { if (i.intersections.length !== 0){ let line = document.createElement("hr"); let nextLine = document.createElement("br"); answer.append(i.intersections.join(", ") + ": " + i.name); answer.append(nextLine); answer.append(line); lines++; } } if (lines === 0){ answer.innerHTML = "Таких рецептов нет!"; } }); // ингредиенты let ingredients = window.ingredients; let inputContainer = document.getElementById("input-container") inputContainer.innerHTML = ""; // вывод всех ингредиентов из файла for(let i = 0; i<ingredients.length; i++) { let ingredientCheckbox = document.createElement("input") ingredientCheckbox.id = rus_to_latin(ingredients[i]).toLowerCase(); ingredientCheckbox.type = "checkbox" let ingredientLabel = document.createElement("label") ingredientLabel.for = ingredientCheckbox.id ingredientLabel.id = ingredientCheckbox.id + "-label" ingredientLabel.innerHTML = ingredients[i] + "n" let nextLine = document.createElement("br") inputContainer.append(ingredientCheckbox); inputContainer.append(ingredientLabel); inputContainer.append(nextLine) } // кнопка очистки выбора let clearButton = document.getElementById("clear") clearButton.addEventListener("click", () => { const selected = [...document.querySelectorAll("input[id]:checked")].map( (input) => input.id ); for (ingredient of selected) { const getInput = document.getElementById(ingredient) getInput.checked = false; } }); // кнопка "Выбрать все" let checkAllButton = document.getElementById("check-all") checkAllButton.addEventListener("click", () => { const inputs = [...document.querySelectorAll("input[id]")].map( (input) => input.id ); for (ingredient of inputs) { const getInput = document.getElementById(ingredient) getInput.checked = true; } }); </script> </body> </html>
Прошу поправить, чтобы не было проблемы.
Ссылка на код одним файлом в архиве, который не мог скачать из Виндовс (перегружался в Линукс) https://disk.yandex.ru/d/Q3zx2KZFWXdg0w
Предыдущая версия, до объединения в один файл https://disk.yandex.ru/d/rasHcsA_v5iDgw
Дополнительно:
Прошу поправить, чтобы не было проблемы.
)))
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Проблема, с которой вы столкнулись, может быть вызвана блокировкой вашим антивирусом некоторых скриптов или ресурсов на странице, которые он может считать потенциально опасными или вредоносными. Для того чтобы решить эту проблему, вам необходимо выполнить следующие действия:
1. Проверьте настройки вашего антивирусного программного обеспечения. Возможно, есть опция блокировки определенных типов контента или скриптов, которую можно отключить или настроить таким образом, чтобы ваша страница с экспертной системой загружалась без проблем.
2. Попробуйте временно отключить антивирусное программное обеспечение и проверить, загружается ли страница с экспертной системой без его вмешательства. Если страница загружается успешно после отключения антивируса, то проблема действительно может быть связана с его работой.
3. Если вы уверены, что страница безопасна и не содержит вредоносного контента, попробуйте добавить ее в список исключений или доверенных сайтов в настройках антивируса. Это может помочь избежать блокировки скриптов или ресурсов на странице.
4. Обновите антивирусное программное обеспечение до последней версии, так как старые версии могут содержать ошибки или проблемы, которые могут привести к блокировке безопасного контента на страницах.
5. Если ни одно из вышеперечисленных действий не помогло, обратитесь в службу поддержки вашего антивирусного программного обеспечения для получения дальнейшей помощи и консультации.
Надеюсь, что эти рекомендации помогут вам решить проблему с загрузкой страницы с экспертной системой на Javascript из-за антивируса. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их. Удачи!