#jquery #html #ajax
#jquery #HTML #ajax
Вопрос:
Я загружаю HTML-страницу в теле целевой страницы с помощью jquery и ajax. Мне нужно <title>Page Title</title>
из загруженного документа для целевой страницы.
Я пробовал это, но безуспешно:
$.ajax({
url: "test.htm",
cache: false,
dataType: "html",
success: function(html){
$('#main-load').html(html);
$('#greeting').append($(html).find('title').text());
}
});
Я также попробовал несколько других методов, но безуспешно. Есть идеи?
Спасибо!
РЕДАКТИРОВАТЬ: test.htm это очень простой документ.
Пример:
<html>
<head>
<title>Page Title</title>
<style>
....
</style>
</head>
<body>
....
</body>
</html>
Комментарии:
1. Не могли бы вы поместить краткое описание кода «test.htm ?
2.
html
Метод удалит заголовок из документа перед его вставкой. Это необходимо, чтобы избежать взлома. Не уверен, что это было бы хорошим решением — возможно, вам придется проанализировать необработанные данные3. @Pekka: Он не смотрит во вставленное дерево.
Ответ №1:
Как сказал Пекка, он удаляет заголовок из загруженного документа, поэтому вам придется разобрать его из необработанного текста с помощью регулярного выражения: (Дайте мне знать, если это сработает)
var title = html.match("<title>(.*?)</title>")[1];
Комментарии:
1. @Sunburnt Ginger, только что исправил ошибку в приведенном выше коде. Попробуйте и посмотрите, работает ли это.
2. Сработало великолепно! Спасибо!!
Ответ №2:
Попробуйте найти for title
после добавления в main-load
.
$('#greeting').append($('#main-load').find('title').text());
Ответ №3:
попробуйте использовать этот код:
$(html).attr("title");
Надеюсь, это сработает
Комментарии:
1. No bueno… возвращает нулевое значение. Хотя спасибо!
2. Необходимо получить
title
элемент, а неtitle
атрибут.