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: 10 let
|
0