2009-06-02 7 views
3

Immer wenn ich einen Blogeintrag auf die Seite mit Ajax laden, stelle ich die Seite <title> auf "Mein Blog - BLOGPOST_TITLE".Wie unauffällig aktualisieren Sie den Seitentitel mit JS (in Rails)

Natürlich erscheint "Mein Blog -" auch in meinem Anwendungslayout.

Die Frage ist, wie kann ich mein Javascript über die Zeichenfolge "Mein Blog -" sagen, ohne es in meinem Code zu duplizieren?

Antwort

7

Bevor Ajax an den Server gesendet wird, speichern Sie den Wert von document.title ("Mein Blog") an eine Variable. Dann, als Antwort gesetzt ankommt document.title + auf document.title '-' + BLOGPOST_TITLE

so haben Sie in HTML:

... < title> Mein Blog </title> ...

und in JS:

 
var TITLE = document.title; 

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

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

Das wird nicht funktionieren - der Titel meines Blogs ist nie „Mein Blog“. Ich zeige immer einen Beitrag, also ist es immer "Mein Blog - BLOGPOST_TITLE". Ich könnte auf das "-" oder etwas aufteilen, aber das ist ein Hack (was wenn "-" sich ändert). –

+0

Handelst du mit einem bestimmten Blog oder vielen verschiedenen? Im ersten Fall ist es möglich, eine zusätzliche Ajax-Anfrage an den Blog-Endpunkt zu senden (nicht an einen bestimmten Blog-Eintrag, sondern an den Blog-Stamm) - der zurückgegebene Titel ist dann nur 'Mein Blog'. –

+0

Ja, ich könnte einen anderen AJAX-Anruf machen, obwohl dies verschwenderisch erscheint, da ich das Präfix zum Zeitpunkt des anfänglichen Ladens der Seite tatsächlich kenne. –

1

ich diesen Weg gehen würde (schmutzig, aber funktioniert gut):

document.myTitlePrefix = 'My Blog - ' 

und dann aktualisieren Titel als

document.title = document.myTitlePrefix + blogPostTitle