jQuery: как изменить заголовок документа во время .ready ()? - PullRequest
138 голосов
/ 07 октября 2008

Я использую несколько вложенных макетов в Ruby on Rails, и в одном из макетов мне нужно прочитать строку из div и установить ее в качестве заголовка документа. Как правильно (если таковые имеются) установить заголовок документа?

<script type="text/javascript">
$(document).ready(function() {

    // ???

});
</script>

Ответы [ 8 ]

300 голосов
/ 08 октября 2008

Следующее должно работать, но оно не будет совместимо с SEO. Лучше всего поместить заголовок в тег заголовка.

<script type="text/javascript">

    $(document).ready(function() {
        document.title = 'blah';
    });

</script>
47 голосов
/ 31 октября 2010

Не используйте $('title').text('hi'), потому что IE не поддерживает его.

Лучше использовать document.title = 'new title';

40 голосов
/ 14 февраля 2011

Это прекрасно работает во всех браузерах ...

$(document).attr("title", "New Title");

Работает в IE тоже

36 голосов
/ 07 октября 2008

Как это:

$(document).ready(function ()
{
    document.title = "Hello World!";
});

Обязательно установите заголовок по умолчанию, если вы хотите, чтобы ваш сайт был правильно проиндексирован поисковыми системами.

Небольшой совет:

$(function ()
{
    // this is a shorthand for the whole document-ready thing
    // In my opinion, it's more readable 
});
16 голосов
/ 07 октября 2008
<script type="text/javascript">
$(document).ready(function() {

    $(this).attr("title", "sometitle");

});
</script>
5 голосов
/ 23 июня 2012

document.title не работает для меня.

Вот еще один способ сделать это с помощью JQuery

$('html head').find('title').text("My New Page Title");
5 голосов
/ 09 октября 2008

Я использую несколько вложенных макетов в Ruby on Rails, и в одном из макетов мне нужно прочитать строку из div и указать ее в качестве заголовка документа.

Правильный способ сделать это на стороне сервера.

В вашем макете в какой-то момент будет какой-то код, который помещает текст в div . Сделайте, чтобы этот код также установил некоторую переменную экземпляра, такую ​​как @page_title, и затем во внешнем макете сделайте это <%= @page_title || 'Default Title' %>

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

Если у вас есть серверный скрипт get_title.php, который повторяет текущий титульный сеанс, это прекрасно работает в jQuery:

$.get('get_title.php',function(*respons*){
    title=*respons* + 'whatever you want'   
    $(document).attr('title',title)
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...