Получить название сайта - PullRequest
2 голосов
/ 09 ноября 2011

Я пытаюсь получить заголовок URL для ссылки.

Например, получить заголовок этого:

<a class="stack" href="http://stackoverflow.com" title="Stack Overflow">

будет сгенерировано динамическипримерно так: $('.stack').attr("title", "....");.

Возможно ли с помощью javascript или jQuery получить заголовок URL-адреса?

Большое спасибо

Ответы [ 4 ]

1 голос
/ 09 ноября 2011

Потребовалось немного времени, но этот пример позволяет вам загрузить веб-страницу с веб-страницы.Затем извлеките заголовок из тегов заголовка.

<html>
<head>
<!-- jQuery include -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

<!-- This include allows cross domain get requests -->
<script type="text/javascript" src="https://raw.github.com/jamespadolsey/jQuery-Plugins/master/cross-domain-ajax/jquery.xdomainajax.js"></script>

<!-- Sample -->
<script type="text/javascript">
$(document).ready(function(){
    //gets the href of the first anchor
    var url = $("a").first().attr("href");

    //sets a get request to get the html source
    $.get(url, function(data){
        //uses get string between function to get the text between the title tags
        //then calls it in a message box
        alert(getStringBetween(data.responseText, "<title>", "</title>"));
    }); 
});

function getStringBetween(input, start, end){
    var index = input.indexOf(start);

    if(index != -1){
        index += start.length;
        var endIndex = input.indexOf(end, index + 1);

        if(endIndex != -1)
            return input.substr(index, endIndex - index);
    }
    return false;
}
</script>

</head>
<body>
    <a href="http://www.google.com/">Google</a>
</body>
</html>
0 голосов
/ 09 ноября 2011

По соображениям безопасности вы не можете читать контент с другого веб-сайта, используя Javascript, даже просто для чтения заголовка.

Вы можете написать прокси на стороне сервера, который запрашивает удаленную страницу и находит ее <title>тег с использованием анализатора HTML.

Однако вы не должны делать это на стороне клиента;это приведет к напрасной трате времени и ресурсов.
Если вы действительно хотите это сделать, сделайте это один раз на сервере в качестве этапа предварительной обработки при создании новой страницы.

0 голосов
/ 09 ноября 2011

Если href URL-адреса не находится в домене текущего документа, использование JavaScript для получения заголовка целевого документа потребует междоменных сценариев, которые обычно не разрешаются (с использованием традиционных методов) браузерами.Если вам не нужны прокси-серверы (вы не совсем уверены, как это сделать), вам сначала потребуется серверный язык для загрузки документа.

0 голосов
/ 09 ноября 2011

Да, просто используйте document.title.Просто и эффективно.

$('.stack').attr("title", document.title);

РЕДАКТИРОВАТЬ: Похоже, я неправильно понял ваш вопрос.Если вы хотите получить заголовок другой страницы, а не загруженной в данный момент страницы, вы можете использовать междоменную хитрость AJAX, но обычно это не очень хорошая идея.Я бы просто взял серверную часть заголовка страницы (во всем, что вы используете для генерации страницы [php, asp и т. Д.]) И вывел ее.

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