Причина возникновения Uncaught SyntaxError: Unexpected end of input
Есть такой скрипт в отдельном файле bookmarklet_launcher.js:
(function () {
if (!window.bookmarklet) {
var bookmarklet_js = document.body.appendChild(
document.createElement("script")
);
bookmarklet_js.src =
"//127.0.0.1:8000/static/js/bookmarklet.js?r=" +
Math.floor(Math.random() * 99999999999999);
window.bookmarklet = true;
} else {
bookmarkletLaunch();
}
})();
Выдает вышеуказанную ошибку, если ссылаюсь на него таким путем:
<a href="javascript:{% include 'bookmarklet_launcher.js' %}"></a>
Но если вставляю скрипт напрямую:
<a href="javascript:(function () {
if (!window.bookmarklet) {
var bookmarklet_js = document.body.appendChild(
document.createElement('script')
);
bookmarklet_js.src =
'//127.0.0.1:8000/static/js/bookmarklet.js?r=' +
Math.floor(Math.random() * 99999999999999);
window.bookmarklet = true;
} else {
bookmarkletLaunch();
}
})();" class="button">Bookmark it</a>
То скрипт выполняется корректно. Почему? Сервер разработки запускается с тестовым сертификатом следующим образом:
python manage.py runserver_plus --cert-file cert.crt
Источник: Stack Overflow на русском