Как настроить jQuery, чтобы внешние сценарии (src="...") оставались внешними при внедрении разметки с помощью .html()?

Я заметил, что когда я использую jQuery.html('...')метод для вставки разметки, содержащей внешний<script src="..."></script>тег, jQuery не вставляет тег сценария непосредственно в DOM как есть. Вместо этого он сначала извлекает содержимое сценария, а затем генерирует новый встроенный файл . <script>тег, содержащий исходное содержимое.

Другими словами, если вставленный HTML содержит:

      <script src="xyz.js"></script>

jQuery преобразует его в:

      <script> ... contents of xyz.js ... </script>

Однако, поскольку моя политика безопасности контента (CSP) запрещает встроенные теги сценариев, браузер теперь отказывается выполнять этот сценарий. Я понимаю, что jQuery должен анализировать теги скриптов, поскольку установка HTML через .innerHTML не будет выполнять скрипты, содержащиеся в разметке. Но почему внешний скрипт трансформируется во встроенный? Есть ли способ настроить здесь поведение jQuery или мне нужно переопределить.html()сам?

0 ответов

Другие вопросы по тегам