Скопируйте (например, с помощью load или find) с помощью jQuery HTML-разметку с включенным встроенным скриптом - как реализовать? - PullRequest
1 голос
/ 14 октября 2010

Я хочу обрезать часть разметки HTML с включенным Inline-JavaScript.

Пример:

<div id="foo">
   <div id="bar">
      <script>
         ..some function..
      </script>
      <p>...</p>
   </div>
</div>

С помощью функций jQuery find () и load () вы не являетесьвозможность скопировать всю разметку с помощью JS-Snippet.Результат выглядит так:

<div id="foo">
   <div id="bar">
      <p>...</p>
   </div>
</div>

Сценарий удаляется.В сообществе jQuery говорят, что так должно быть из-за риска внедрения сценариев.

Но как вообще можно это реализовать?

С наилучшими пожеланиями, Крис

Ответы [ 2 ]

2 голосов
/ 14 октября 2010

Это не связано с внедрением скрипта во время html() чтения, это связано с несоответствиями браузера относительно того, что происходит, когда вы записываете <script> в innerHTML, во время html(value).1006 * Это крайне ненадежно во всех браузерах, поэтому jQuery пытается вытащить сценарии и выполнить их по отдельности, избегая записи их в документ, поскольку это имеет непредсказуемые последствия.1009 * узловых элементов или HTML-разметки с <script> in. Что вы пытаетесь сделать здесь?

1 голос
/ 14 октября 2010

http://forum.jquery.com/topic/jquery-removing-script-tags-from-html-string-when-using-html

Хорошая тема для этого.

Полагаю, вы всегда можете использовать innerHTML, который, как мне кажется, возвращает скрипт.

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