2009-06-02 4 views
3

Всякий раз, когда я загружаю сообщение в блоге на страницу с помощью Ajax, я установил страницу <title> в «Мой блог - BLOGPOST_TITLE».Как ненавязчиво обновить заголовок страницы с помощью JS (в Rails)

Конечно, «Мой блог -» также отображается в моем макете приложения.

Вопрос в том, как я могу рассказать свой Javascript о строке «Мой блог», не дублируя ее в моем коде?

ответ

7

Прежде чем Ajax отправляется на серверное имя document.title («Мой блог») на некоторую переменную. Тогда, когда ответ прибывает набор document.title к document.title + '-' + BLOGPOST_TITLE

так что вы имеете в HTML:

... < название> Мой блог </название> ...

и JS:

 
var TITLE = document.title; 

function getBlogSpotEntry() { 
    Ajax.Request(url, { 
    onSuccess: function(response) { 
     var entryTitle = getTitle(response.responseText); 

     document.title = TITLE + " - " + entryTitle; 
    } 
    }) 
} 
+0

Это не будет работать - название моего блога никогда не является «Мой блог». Я всегда показываю пост, поэтому он всегда «Мой блог - BLOGPOST_TITLE». Я мог бы разделить на «-» или что-то в этом роде, но это взломать (что, если «-» меняется). –

+0

Вы имеете дело с одним конкретным блогом или с разными? В первом случае можно отправить один дополнительный запрос ajax в конечную точку блога (не для определенной записи в блоге, а для корня блога) - тогда возвращенный заголовок будет только «Мой блог». –

+0

Да, я мог бы сделать еще один вызов AJAX, хотя это кажется расточительным, так как я действительно знаю префикс во время начальной загрузки страницы. –

1

Я бы этот путь (грязный, но хорошо работает):

document.myTitlePrefix = 'My Blog - ' 

, а затем обновить название как

document.title = document.myTitlePrefix + blogPostTitle