Подтвердить что ты не робот

Тело загрузки jQuery из внешнего HTML

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

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

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

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

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

4b9b3361

Ответ 1

От http://api.jquery.com/load

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

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

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

Ответ 2

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

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

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

Ответ 3

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

Ответ 4

Когда вы используете загрузку без селектора, она разделяет теги <html>, <head> и <body>, но оставляет без изменений все дочерние элементы <head> и <body>, включая заголовок, script, и теги стиля. Однако, когда вы используете селектор, он применяется после удаления тега 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");

Ответ 5

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

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