AJAX: получение заголовка загруженного html-документа (jquery)

#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 атрибут.