JQuery: как изменить заголовок документа во время .ready()?

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

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

    // ???

});
</script>

Ответ 1

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

<script type="text/javascript">

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

</script>

Ответ 2

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

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

Ответ 3

Вот так:

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

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

Маленький совет:

$(function ()
{
    // this is a shorthand for the whole document-ready thing
    // In my opinion, it more readable 
});

Ответ 4

Это отлично работает во всех браузерах...

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

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

Ответ 5

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

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

});
</script>

Ответ 6

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

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

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

Ответ 7

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

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

$('html head').find('title').text("My New Page Title");

Ответ 8

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

$.get('get_title.php',function(*respons*){
    title=*respons* + 'whatever you want'   
    $(document).attr('title',title)
})