Товарищи, помогите пожалуйста, голову сломал, не знаю почему - не хочет грузиться скрипт через AJAX,пробовал по всякому, по прямому подключению работает отлично Код script.js в файле по ссылке script.js - код script.js просто большой, поэтому ссылка
Скорее всего скрипт загружается. Но не выполняется обработчик внутри window.addEventListener('load', () => { потому что это событие уже произошло в прошлом. Если ситуация именно такая (можно проверить, добавив в начало загружаемого скрипта alert(111)), то решением будет использование jquery-евского DOMReady:
Это
window.addEventListener('load', () => {
let word = document.getElementById('word');
let translateButton = document.getElementById('translateButton');
...
заменить на это
$(() => {
let word = document.getElementById('word');
let translateButton = document.getElementById('translateButton');
...
А если удалить $(document).ready(function() { и оставить только $.getScript(“script.js”); ? Возможно такая ситуация:
$(document).ready(function() {
// Этот код прогружается через секунду но событие уже произошло
// ранее и весь код ниже не воспроизводится
$(document).ready(function() {
//...
});
});
P.S.: Из Укр. Я.Диск нельзя открыть что бы увидеть содержимое файла.
Ну да, window.addEventListener(‘load’, () => { колбек используется. И он не отрабатывает, так как событие лоада уже произошло, до момента когда этот скрипт подгрузился через $.getScript и начал выполняться.
Вроде @dmitry и я подсказали тебе выше, как это пофиксать.
Думаю тут причина таже что и в том примере, наверное, ибо проблема таже - не выполняется скрипт, а при прямом подключении выполняется и обработчик тотже
Проблема скорее всего та же: событие onload уже произошло когда выполняется скрипт. Лечение такое же как и в моем первом ответе.
Диагностировать проблему можно было бы, добавив alert в начало скрипта и alert внутри window.onload = function (){. Скорее всего второй алерт не выполняется, следовательно дело в том что обработчик события не выполняется.