Неожиданный токен Javascript

Я сделал этот код для тестирования и собирался связать с ним скрипт Github. Но когда я попробовал, это не сработало.

const request = url => fetch(url).then(res => res.text());

const injectInline = (data) => {
    data = data.replace(new RegExp("\r?\n", "g"), "")
    data = data.replace(/ +/g, " ");
    let s = document.createElement('script');
    s.type = 'text/javascript';
    s.innerText = data;
    document.getElementsByTagName('body')[0].appendChild(s);
};

(async function() {
    let script = await request(`github link`);
    injectInline((script));
})();

let observer = new MutationObserver(mutations => {
    for (const mutation of mutations) {
        for (let node of mutation.addedNodes) {
            if (node.tagName == 'SCRIPT' && node.src.includes("c14.js")) {
                node.outerHTML = ``;
            }
        }
    }
});

.observe(document, {
    childList: true,
    subtree: true
});

Когда я запускаю этот код, он выдает следующую ошибку:

Uncaught SyntaxError: Unexpected token '.'

Номера строк здесь служат только для загромождения и не служат никакой полезной цели. Их лучше удалить. Просто добавьте комментарий к соответствующей строке.

tadman 09.12.2020 22:01

«Не сработало» — это не техническое описание вашей проблемы. Что случилось? Вы видели какие-либо ошибки в вашей консоли JavaScript? Вы получили неожиданные результаты?

tadman 09.12.2020 22:02

«Неожиданный токен» обычно означает, что то, что вы вводите, имеет синтаксическую ошибку. Вы получили необработанный JavaScript или что-то, обернутое в HTML?

tadman 09.12.2020 22:03

Пожалуйста, следуйте этим рекомендациям, чтобы улучшить форматирование вопроса.

AGE 09.12.2020 22:17

Должен ли .observe быть таким?

Ben Stephens 09.12.2020 22:18
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
5
99
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

добро пожаловать в СО. На первый взгляд, в последних строках есть ;, которого быть не должно. Вот ваш обновленный код:

const request = url => fetch(url).then(res => res.text());

const injectInline = (data) => {
    data = data.replace(new RegExp("\r?\n", "g"), "")
    data = data.replace(/ +/g, " ");
    let s = document.createElement('script');
    s.type = 'text/javascript';
    s.innerText = data;
    document.getElementsByTagName('body')[0].appendChild(s);
};

(async function() {
    let script = await request(`github link`);
    injectInline((script));
})();

let observer = new MutationObserver(mutations => {
    for (const mutation of mutations) {
        for (let node of mutation.addedNodes) {
            if (node.tagName == 'SCRIPT' && node.src.includes("c14.js")) {
                node.outerHTML = ``;
            }
        }
    }
})
.observe(document, {
    childList: true,
    subtree: true
});

В вашем коде есть лишняя точка с запятой; Вы должны сделать это:

const request = url => fetch(url).then(res => res.text());

const injectInline = (data) => {
    data = data.replace(new RegExp("\r?\n", "g"), "")
    data = data.replace(/ +/g, " ");
    let s = document.createElement('script');
    s.type = 'text/javascript';
    s.innerText = data;
    document.getElementsByTagName('body')[0].appendChild(s);
};

(async function() {
    let script = await request(`github link`);
    injectInline((script));
})();

let observer = new MutationObserver(mutations => {
    for (const mutation of mutations) {
        for (let node of mutation.addedNodes) {
            if (node.tagName == 'SCRIPT' && node.src.includes("c14.js")) {
                node.outerHTML = ``;
            }
        }
    }
})
.observe(document, {
    childList: true,
    subtree: true
});

Другие вопросы по теме