JQuery загрузить тело из внешнего HTML - PullRequest
22 голосов
/ 11 марта 2011

Я использую jQuery и пытаюсь загрузить тело из внешнего HTML-файла.

Работает, если я пытаюсь загрузить div:

$('body').load('example.html #content');

Но я не могу сделать что-то вроде этого:

$('body').load('example.html body');

Ответы [ 5 ]

9 голосов
/ 11 марта 2011

С http://api.jquery.com/load

jQuery использует свойство браузера .innerHTML для анализа полученного документа и вставки его в текущий документ.Во время этого процесса браузеры часто фильтруют элементы из документа, такие как , или .В результате элементы, извлекаемые с помощью .load (), могут не совпадать, как если бы документ был извлечен непосредственно браузером.

Читая выше, кажется возможным, что ваш браузер будет тольковозвращение тела innerHTML.Очевидно, это должно совпадать с запросом body, но, возможно, это вызывает ошибку, поскольку body не найден?

Я бы предложил попробовать другой браузер.

3 голосов
/ 11 марта 2011

Если вы хотите загрузить все тело, $('body').load('example.html'); должно быть достаточно.

Если нет, не могли бы вы объяснить, почему?

В любом случае, решение, предоставленное Стивом, является правильным.

2 голосов
/ 08 июня 2017

Когда вы используете загрузку без селектора, он удаляет теги <html>, <head> и <body>, но оставляет все дочерние элементы <head> и <body> без изменений, включая заголовок, сценарий и теги стиля. Однако, когда вы используете селектор, он применяется после тег body обрезается , поэтому с ним невозможно сопоставить.

Вместо этого оберните все содержимое своего тела в другой тег и выберите вместо него этот тег:

<html><head><title>Hello!</title</head>
<body>
  <div id="jquery-load-point">
    ... <!-- rest of body content -->
  </div>
</body>
</html>

Теперь вы можете загрузить его так:

$("#destination").load("http://my.url/to/page #jquery-load-point");
2 голосов
/ 30 июля 2013

Полагаю, вам нужно добавить iframe.Передайте URL-адрес его свойству src.Весь ваш HTML будет загружен в этот iframe.Чистое и простое решение вашей проблемы.Всего наилучшего: -)

1 голос
/ 11 марта 2011

Убедитесь, что вы используете jQuery 1.5.1, а не 1.5.У функции загрузки в 1.5 были проблемы.Я ответил на аналогичные вопросы по адресу jquery .load () не работает

Другое дело, попробуйте его в разных браузерах, чтобы убедиться, что это не проблема браузера.Chrome не позволяет использовать нагрузку при работе с localhost без каких-либо настроек.

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