| Autor | Zpráva | ||
|---|---|---|---|
| tereza789 Profil |
#1 · Zasláno: 12. 8. 2015, 18:03:44
Dobrý den,
když mám na webu psaném v Nette podstránku "služby" a na této podstránce několik záložek například "marketing, webdesign, hosting." Potřebuji mít pro každou záložku jiný description, title a keywords, bude to možné provést? url jednotlivých záložek budou vypadat zhruba takto: www.mojefirma.cz/sluzby#marketing www.mojefirma.cz/sluzby#webdesign www.mojefirma.cz/sluzby#hosting Děkuji předem za rady:-) |
||
| tpmar Profil |
#2 · Zasláno: 12. 8. 2015, 19:35:56
Sepsal jsem na rychlo, snad nikde nemám žádnou chybu. U mně to ale jelo správně :)
<html>
<head>
<title>Stránky</title>
<meta name="description" content="">
<meta name="keywords" content="">
<meta charset="UTF-8">
<style type="text/css">
html, body {
height: 100%;
margin: 0;
padding: 0;
}
section {
height: 100%;
border: 1px solid;
}
</style>
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script type="text/javascript">
$().ready(function() {
var originalTitle = $(document).attr("title");
var metaTags = [];
var arr = $("section").map(function() {
return this.id;
})
$(window).scroll(function() {
var fromTop = $(this).scrollTop();
var cur = $.map(arr, function(val) {
if($("#"+val).offset().top <= fromTop) {
return val;
}
})
cur = cur[cur.length - 1];
switch(cur) {
case "marketing":
metaTags = {
title : "Marketing | ",
description : "Něco o marketingu.",
keywords : "Tagy"
};
break;
case "webdesign" :
metaTags = {
title : "Webdesign | ",
description: "Něco o webdesignu",
keywords : "Tagy"
};
break;
case "hosting" :
metaTags = {
title: "Hosting | ",
description : "Něco o hostingu",
keywords: "Tagy"
};
break;
}
$(document).attr("title", metaTags.title + originalTitle );
$('meta[name=description]').attr('content', metaTags.description);
$('meta[name=keywords]').attr('content', metaTags.keywords);
})
})
</script>
</head>
<body>
<section id="marketing">Marketing</section>
<section id="webdesign">Webdesign</section>
<section id="hosting">Hosting</section>
</body>
</html>No ale nevím jak moc účinné. |
||
| Chamurappi Profil |
Reaguji na terezu789:
„Potřebuji mít pro každou záložku jiný description, title a keywords“ Myslíš, že pak ve výsledcích vyhledávání bude hlavní odkaz mířit přímo na kotvu? To jsem ještě neviděl. K čemu by vyhledávači byla metadata o kotvě, když na ni neumí poslat návštěvníka? Krom toho <meta name="keywords"> už je ohromně dlouho k ničemu.
Pro úplnost zmíním, že minimálně Google podporuje konvenci hashbang – když najde odkaz na #!kotvu, zkouší poslat požadavek na ?_escaped_fragment_=kotvu, kde očekává, že bude stránka ve stejném stavu, jako když přijde uživatel s JS na #!kotvu. Ale tento postup je určený primárně pro AJAXové aplikace, ne pro weby, kde je všechno vidět na jedné stránce.
Mimochodem, autoři webů, na které odkazuješ takhle v diskusi, musí být nadšení… používej laskavě example.com, který je na ukázkové adresy určený.
Reaguji na tpmara: „No ale nevím jak moc účinné.“ Vůbec nijak*. Robot vyhledávače samozřejmě uvedený skript nikdy nevykoná. Krom toho … k čemu jQuery, k čemu <section>, proč se do metaTags přiřazuje [], proč porovnávat scrollTop() s offset().top (který vzniká sečtením dvou hodnot, z nichž jedna je scrollTop), proč $(document).attr("title") když title na objektu document není atribut…
*) Myšleno z hlediska SEO. Z pohledu uživatele bude viditelná změna <title> – to nějaké plus je.
|
||
| tpmar Profil |
#4 · Zasláno: 12. 8. 2015, 20:18:28
Chamurappi:
Já si to myslel, že google to neuvidí, čekal jsem až se ozveš a opravíš mě :-) A teď na mou obhajobu. Proč nepoužít jQuery, když usnadňuje práci? Proč nepoužít section, když si tím krásně oddělím jednotlivé fragmenty stránky? Krom toho, že to není určené pro starší prohlížeče v tom nevidím žádný problém. Ohledně porovnávání - také na tom nevidím nic špatného, když to dokáže určit na jakém fragmentu se momentálně nacházím. A ano u attr uznávám, že jsem se sekl, jenže když to funguje. :) |
||
| Chamurappi Profil |
#5 · Zasláno: 13. 8. 2015, 18:17:46
Reaguji na tpmara:
„Proč nepoužít jQuery, když usnadňuje práci?“ S čím? Že místo okamžitého spuštění čekáš zbytečně na později? Že místo document.title = "něco" píšeš $(document).attr("title", "něco")? Bez jQuery by byl ten kód možná upovídanější o pár znaků, ale výsledek menší o 94 kB a efektivnější.
„Krom toho, že to není určené pro starší prohlížeče v tom nevidím žádný problém.“ Takže stránka bude třem lidem ze sta blbě fungovat jen a pouze proto, aby sis v kódu krásně oddělil fragmenty? To máš nějaké zvláštní priority. Navíc děláš rozhodnutí o kompatibilitě stránky za terezu789, aniž bys na to explicitně upozornil. „také na tom nevidím nic špatného, když to dokáže určit na jakém fragmentu se momentálně nacházím“ Místo abys porovnal 0 a hodnotu X, tak porovnáváš Y a hodnotu vzniklou součtem X+Y, kde se při zjišťování Y ještě řeší nekompatibilita Webkitu se zbytkem světa. Zbytečně krkolomná cesta.
|
||
| tpmar Profil |
#6 · Zasláno: 14. 8. 2015, 17:47:28
Dobře, díky za odpověď. Pootevřela mi zase o něco víc oči. :) A omlouvám se za nevarování uživatele tereza789 ohledně HTML tagu section.
|
||
|
Časová prodleva: 11 let
|
|||
0