Django: Включение шаблона, содержащего тег сценария, в другой тег сценария
Я хочу включить html-файл, содержащий тег script следующего вида:
<script>$('#page-content').html('{% include "title.html" %}');</script>
title.html:
<script>document.title = "Hello World!"</script><p>Hello World!</p>
result:
<script>$('#page-content').html('<script>document.title = "Hello World!"</script><p>Hello World!</p>');</script>
К сожалению, браузер не будет выполнять его правильно из-за множества наборов тегов скрипта, и я не совсем уверен, как решить эту проблему наилучшим образом
Ну, просто $.html не будет выполнять скрипты, добавленные, но простой javascript может .
// const content = `{% include 'title.html' %}`;
const content = `<script>alert("foo")</script>`;
const target = document.getElementById('page-content');
const range = document.createRange();
range.selectNode(target);
const fragment = range.createContextualFragment(content);
target.appendChild(fragment); // Here script is executed, "foo" pops up