Browserify - пакет загружается, но потом не работает

1

Прежде чем спросить, да, я несколько раз использую Browserify, но по какой-то причине он просто не будет работать на этот раз.

Эта проблема:

Когда я загружаю веб-сайт, bundle.js будет выполняться только один раз, а затем остаётся без внимания в течение оставшегося времени. - Требование не является проблемой, так как я пытался использовать Console.log, некоторые требуют кода, который работал, но потом все, что сделано пользователем, не будет выполнено.

Как вы можете видеть в моем коде, я пытаюсь выполнить registerHref() onclick моей кнопки, что работает, когда я не использую bundle.js, но как только я делаю это с моим пакетом, ему это нравится полностью игнорируется. Я получу ошибку, в которой говорится: " Uncaught ReferenceError: registerHref is not defined at HTMLButtonElement.onclick - Но когда я пытаюсь выполнить console.log, функция на window.onload - она работает так, как должна.

Мой HTML:

<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
    <script type="text/javascript" src="bundle.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
    <div class="header" style="border-style: solid; text-align: center;">
        <button id="register" onclick="registerHref()">Register</button>
    </div>
</body>
</html>

Мой Javascript:

function registerHref() {
    window.location.href = "./register.html"
}

Что я сделал:

  • Я сделал свой пакет, используя: browserify main.js > bundle.js <- Обычно работает нормально
Теги:
browserify

1 ответ

0

Проблема в том, что после компиляции кода функция не привязана к объекту window а выполняется в другой области.

У вас есть в основном два варианта:

  1. Прикрепите функцию registerHref к объекту окна (не рекомендуется):

function registerHref() {
  window.location.href = "./register.html"
}

window.registerHref = registerHref;
  1. Создайте прослушиватель событий в вашем JS-коде и удалите атрибут onclick из вашего HTML (рекомендуется):

function registerHref() {
  window.location.href = "./register.html"
}
    
document.getElementById('register').addEventListener('click', registerHref);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню