Добавление внешней javascript на страницу, которая будет отправлена ​​сервером - PullRequest
0 голосов
/ 08 февраля 2020

Я создаю небольшой сервер, который отправляет страницу со скриптом в javascript, он работает, когда я пытаюсь открыть его в своем браузере, но если я запрашиваю страницу с сервера, страница возвращается, но не сценарий, поэтому я получаю следующие ошибки:

Console output

Script. js отсутствует между файлами:

Javascript file missing

выглядит странно, потому что из сетевого сеанса я вижу запрос на скрипт со статусом 200:

enter image description here

Файл js, который я пытаюсь добавить, - это Chart. js, поэтому я не могу добавить его внутренне, с ним стало бы невозможно работать, но на данный момент сервер занимает всего несколько строк кода в python, который использует SimpleHTTPRequestHandler, и я, вероятно, собираюсь заменить его, возможно, это связано с тем, что SimpleHTTPRequestHandler не может обрабатывать несколько файловых запросов?

Вот код, который пытался создать фрагмент но там это тоже не работает (наверное, это только я никогда раньше не писал фрагмент):

* 10 25 *HTML:
<!doctype html>
<html>
<head>
   <script src="script.js"></script>
</head>
<body>
   <p id = "paragraph"></p>
   <script>
      document.getElementById('paragraph').innerHTML = sayHello();
   </script>
</body>
</html>

JS:

function sayHello(){
   return "HelloWorld!"
}

Вот серверный скрипт python:

from http.server import HTTPServer, BaseHTTPRequestHandler


class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):

    def do_GET(self):
        self.send_response(200)
        self.end_headers()
        with open("index.html", "r") as page:
            self.wfile.write(page.read())


httpd = HTTPServer(("192.168.1.100", 8000), SimpleHTTPRequestHandler)
httpd.serve_forever()

1 Ответ

2 голосов
/ 08 февраля 2020

Я думаю, вы получите элемент с идентификатором, именем тега или именем класса и добавите файл

var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.onload = function() {
    callFunctionFromScript();
}
script.src = 'path/to/your-script.js';
head.appendChild(script);

также проверьте эту ссылку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...