Почему тег Chrome автоматически удаляет тег сценария?

Каждый.

Я не использую jQuery. Я создаю script пометить и добавить его к head тег для получения данных JSONP. После выполнения функции обратного вызова JSONP script тег, который только что добавлен в head метка мной автоматически удаляется браузером (Chrome). Почему тег сценария автоматически удаляется Chrome? Я не пишу коды для удаления этого script тег.

Спасибо.

2 ответа

Решение

Это не так. Наиболее распространенная причина, по которой люди считают, что изменения DOM не выполняются, заключается в том, что они смотрят на "источник просмотра", а не на фактическую панель DOM. Убедитесь, что, когда вы ищете это, вы смотрите на вкладку "Элементы" в Dev Tools. "Просмотр исходного кода" показывает исходный HTML-код, доставленный с сервера, а не DOM и любые изменения, которые вы, возможно, внесли в него.

Если элемент действительно исчезает, есть код, удаляющий его. Chrome не удаляется произвольно script элементы ( доказательство). Некоторые возможности:

  1. Другой код на странице удаляет его.
  2. Вы добавили его как элемент-наследник чего-либо, и его родитель (или предок) был удален.
  3. Вы добавили его как элемент-наследник чего-либо, а затем обновили этот родительский / родительский элемент новым содержимым, заменив его предыдущее содержимое (например, через innerHTML или похожие).

В 2 и 3 выше код удаляет script элемент как побочный продукт удаления или обновления своего родителя / предка.

У меня такая же проблема. Оказывается, я думаю, что jQuery делает что-то негласное для удаления динамических скриптов. Если я не включу jQuery на страницу, он останется в DOM. Тем не менее, новые версии jQuery (1.9.0 и выше) не создают эту проблему.

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