Aktualisierung des Browser-Titels

dennis-sauer

Erfahrenes Mitglied
Hallo zusammen,

ich habe schon zu Beginn ein wenig was im PHP Forum versucht - es liegt aber wohl nur noch an Javascript... :-)

Ich möchte gerne wie bei Facebook eine kleine Zahl oben stehen haben, wenn z.B. eine neue Nachricht eingeht.

Zur Zeit habe ich folgendes

1) Hauptseite welche mit einem Javascript versehen ist

PHP:
window.onload = function(evt)
{
$.get('ajax.php', function(data) {
  document.title = data;
});
setInterval(null, 5000);}

Und natürlich die Seite ajax.php mit der DB Abfrage und einem

PHP:
echo $anzahl

Mit der Aktualisierung via F5 kein Problem - aber ich möchte ja eine automatische Aktualisierung alle z.B. 5 Sekunden. Wo liegt der Denkfehler?

Grüße

Dennis
 
Code:
setInterval(null, 5000);}
Du hast ja auch nix definiert.

So oder so ähnlich dürfte es klappen:
Code:
title();
function title(evt)
{
$.get('ajax.php', function(data) {
  document.title = data;
setInterval(title(), 5000);}
});

Edit: So dürfte es klappen.
 
Zuletzt bearbeitet:
Hast du die aktuelle Version genutzt da die ältere einen Syntax Fehler enthielt.
Mal mit Firebug debuggt.
Kann das jetzt nicht testen da ich gerade an einem mobilen Device Sitze und nur es so ungefähr hingeschrieben habe.
 
So söllte es jetzt klappen:
Code:
title();
function title(evt) {
  $.get('ajax.php', function(data) {
    document.title = data;
  });
  setInterval(title(), 5000);
}
 
Zuletzt bearbeitet:
Habs zwar schon im PHP gepostet, aber hier gerne nochmal:

Die Funktion "setIntervall" erwartet 2 Parameter, als ersten das was ausgeführt soll und der 2. der Intervall. Da du in deinem Beispiel aber die Funktion "request()" übergibst, diese aber nicht definiert ist.
So sollte es eigentlich funktionieren, ist ungetestet:
Code:
function request(){
    document.title = $.get('ajax.php');
}
window.onload = function(){
   setIntervall('request()', 3000);
}
 
Moin,

jetzt haben wir wieder das Problem, das sich nichts tut - Im Browser-Titel wird gar nichts (außer die lokale Adresse) angezeigt...
 
So, getestet und funktioniert:

Code:
function request(){
		$.get('title.php', function(data){			
			document.title = data;
		});
	}
	$(document).ready(function(){
		setInterval("request()",3000);
	});

Aus der jQuery-Doku:

$.get('test.php);
Request the test.php page, but ignore the return results.

Deswegen muss der Funktion noch ein Callback mitgegeben werden, der die Daten aus der ajax.php zurück gibt.
 
Zuletzt bearbeitet:
Du könntest es noch so ausbauen, dass die Benachrichtigung zusätzlich zum eigentlichen Seitentitel angezeigt wird:
Javascript:
var pageTitle = "";
function updateTitle()
{
  $.get('title.php',
           function(data)
           {
             document.title = pageTitle+" "+data;
           }
          );
}

$(document).ready(function()
{
  pageTitle = document.title;
  window.setInterval('updateTitle()', 3000);
});

Und setze doch bitte das andere Thema auf erledigt (ganz unten neben dem Antworten-Button ist ein Haken).
 
Zurück