Код Python в JavaScript, запущенном на Cloudflare Worker

#javascript #python #html #svg #cloudflare-workers

#javascript #python #HTML #svg #cloudflare-рабочие

Вопрос:

Я создаю worker, который отображает svg файл, сгенерированный с использованием кода Python triangles.py . В этом коде Python у меня есть функция:

 getSVGCode(vw, vh):
    ⋮
    callingOtherFunction(inThisFile)
    ⋮
    return svgCode
  

Эту функцию необходимо вызвать из javascript, который выполняется на Cloudflare Workers (используя их метод, приведенный ниже). SVG-код вставляется в html строку, которую JavaScript возвращает браузеру.

 const html = `<!DOCTYPE html>
<body>
  <h1>Hello World</h1>

  <svg>My svg here</svg>

  <p>This markup was generated by a Cloudflare Worker.</p>
</body>`

async function handleRequest(request) {
  return new Response(html, {
    headers: {
      "content-type": "text/html;charset=UTF-8",
    },
  })
}

addEventListener("fetch", event => {
  return event.respondWith(handleRequest(event.request))
})
  

Итак, я хочу знать способ заставить код Javascript передавать размеры окна просмотра ( vh и vw ) в функцию python, чтобы svg мог быть сгенерирован с использованием этого размера. Если эта опция невозможна, мне придется изменить размер svg, который может выглядеть растянутым. Я также хочу знать, как заставить Worker запускать код python из javascript.

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

Ответ №1:

Итак, я решил, что могу использовать <script></script> внутри html переменной. Я использовал что-то вроде следующего.

 <script>
    const vw = document.documentElement.clientWidth;
    const vh = document.documentElement.clientHeight;
    var svgHref = "https://your.url.here/using?height=vhamp;ampwidth=vw";
    document.getElementById("triangles-svg").src = svgHref;
</script>
  

Это сопровождалось телом с,

 <body>
    <img id="triangles-svg">
</body>
  

Виола. 🙂