Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Menjanje title tag-a

[es] :: Javascript i AJAX :: Menjanje title tag-a

[ Pregleda: 686 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ivan Golubović
AV market
Požarevac

Član broj: 3154
Poruke: 611
*.dynamic.sbb.rs.

Sajt: www.AVmarket.rs


Profil

icon Menjanje title tag-a16.02.2012. u 03:00 - pre 1037 dana i 13h

Pokušavam da promenim title tag tako što ću da mu dodam broj notifikacija (kao npr. twitter...)
Code:
<script type="text/javascript">
$(document).ready(function() {
    $("title").prepend("(1) ");
});
</script>
Ovo npr. radi super jednom, ali pošto se taj div sa notifikacijama automatski osvežava, onda mi je problem što će on 50 puta da doda u title (1) (1) (1) (1)...
Ima li neko ideju kako ovo da rešim?
 
Odgovor na temu

Burgos
Nemanja Borić
Berlin, DE

Član broj: 12484
Poruke: 1759
*.dynamic.isp.telekom.rs.

Sajt: stackoverflow.com/users/1..


Profil

icon Re: Menjanje title tag-a16.02.2012. u 03:14 - pre 1037 dana i 13h
Moraš izvući staru vrednost iz naslova, uvećati je za jedan i vratiti u naslov (jasno ti je da ovde radiš nadovezivanje).

Code:
<html>
<head>   
<script type="text/javascript"
        src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">
</script>
<title>Naslov stranice (54)</title>
<script type="text/javascript">
$(document).ready(function() {
    var header_text = "Naslov stranice"; // odnekud izvuces ovo ili izbacis sve iz 
                                         // document.title pocevsi od poslednjeg 
                                         //pojavljivanja znaka (
    var broj = document.title.match(/\d+/);
    if(broj == null) broj = 0;
    broj++;
    document.title = header_text + " (" + broj + ")";
});
</script>
</head>
</html>


Naravno, ovo je samo ideja i neće raditi ako imaš brojeve u naslovu stranice. Najbolje ti je da upotrebiš funkciju match tako da izvučeš poslednji (\d+) oblik, a zatim i sam broj iz njega. Naravno, ovo možeš i "ručnim" parsiranjem title stringa.
 
Odgovor na temu

Ivan Golubović
AV market
Požarevac

Član broj: 3154
Poruke: 611
*.dynamic.sbb.rs.

Sajt: www.AVmarket.rs


Profil

icon Re: Menjanje title tag-a16.02.2012. u 03:26 - pre 1037 dana i 13h
Laptopovi

Imam brojeve u naslovima. Broj notifikacija mi određuje PHP, tako da ako je broj veći od nula, stranica
će generisati tu skriptu, a u zagradama treba da stoji broj notifikacija. Nisam hteo ovde da pišem PHP
kod jer je nebitan, ali poenta je da jQuery ne treba da računa ništa, već samo da ispiše broj notifikacija
unutar () i da to ne ponavlja...
Code:
if($brojac!=0) { 
echo "<script type=\"text/javascript\">$(document).ready(
function() {
    \$(\"title\").prepend(\"(".$brojac.") \");
});
</script>";
 
Odgovor na temu

Nikola Poša
Web developer
Beograd

Moderator
Član broj: 173839
Poruke: 1613
*.adsl-a-12.sezampro.rs.

Sajt: www.nikolaposa.in.rs


Profil

icon Re: Menjanje title tag-a16.02.2012. u 09:22 - pre 1037 dana i 7h
Pa ne treba JS ništa da računa, ali moraš pre svakog prepend-ovanja da reset-uješ taj brojač u naslovu stranice, ili da ga direktno menjaš. Evo kako bi to moglo da izgleda:
Code:

<?php
if ($brojac != 0) { 
echo '
<script type="text/javascript">
$(document).ready(function() {
    if (document.title.match(/^\([0-9]+\)/) !== null) {
        document.title = document.title.replace(/^\([0-9]+\)/, "(' .$brojac.')");
    } else {
        document.title = "(1) " + document.title;
    }
});
</script>';
?>

Mada ako sam te dobro shvatio, ti taj neki div često osvežavaš, i onda isti taj broj puta ispisuješ ovaj JS snippet, što baš i nije najbolje rešenje. Bolje je da JS povremeno dobavlja te informacije sa serverske strane, pa da onda na osnovu toga radi sve što treba.



[Ovu poruku je menjao Nikola Poša dana 16.02.2012. u 10:33 GMT+1]
 
Odgovor na temu

Ivan Golubović
AV market
Požarevac

Član broj: 3154
Poruke: 611
*.dynamic.sbb.rs.

Sajt: www.AVmarket.rs


Profil

icon Re: Menjanje title tag-a16.02.2012. u 11:09 - pre 1037 dana i 5h
Što se tiče koda, mala prepravka kod prvog ispisa i radi savršeno. Hvala na pomoći.
Code:
echo '<script type="text/javascript">
$(document).ready(function() {
    if (document.title.match(/^\([0-9]+\)/) !== null) {
        document.title = document.title.replace(/^\([0-9]+\)/, "(' .$brojac.')");
    } else {
        document.title = "(' .$brojac.') " + document.title;
    }
});
</script>';

Nego što se tiče optimizacije... Ovo je mala PHP stranica tj. DIV koji ima jednu tabelu koja se generiše na svakih 5-15 sekundi pozivanjem tog PHP fajla i po potrebi ispisuje ovaj snippet.
Nemam ideju kako bi to mogao drugačije da rešim i na šta si tačno mislio...?
 
Odgovor na temu

Nikola Poša
Web developer
Beograd

Moderator
Član broj: 173839
Poruke: 1613
*.adsl-a-12.sezampro.rs.

Sajt: www.nikolaposa.in.rs


Profil

icon Re: Menjanje title tag-a16.02.2012. u 15:22 - pre 1037 dana i 1h
Nije sad toliko ni bitno, ako si uspeo da rešiš to što ti je trebalo, jer bojim se da bi nam trebalo jedno desetak post-ova da dođemo do iste tačke.
 
Odgovor na temu

Ivan Golubović
AV market
Požarevac

Član broj: 3154
Poruke: 611
*.dynamic.sbb.rs.

Sajt: www.AVmarket.rs


Profil

icon Re: Menjanje title tag-a23.03.2012. u 00:38 - pre 1001 dana i 15h
Ovde mi se sada javio drugi problem... Kada nema rezultata, ja sam stavio da mi ne prikazuje JS kod, ali se dešava da kada nestanu "notifikacije" da ostane poslednja vrednost brojača, zato što nema šta da izbriše ovo...

Kako to da rešim?
 
Odgovor na temu

[es] :: Javascript i AJAX :: Menjanje title tag-a

[ Pregleda: 686 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.