Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Request URI
Forum PHP.pl > Forum > Przedszkole
Vachu
Witam,
potrzebuję skryptu, który nie będzie wyświetlał danych kiedy będzie dodatkowa część adresu - element page-ra.
Tekst wyświetla się dobrze, tylko jak mam page-ry na stronie to zmienia się adres a tekst zostaje. Takie działanie powoduje duplikaty treści co negatywnie wpływa na pozycjonowanie.

Obecnie napisałem coś takiego:

Kod
  
<script type="text/JavaScript">
var daUrl=window.location.href;
var requestUri=daUrl.replace(/http:\/\//,'').replace(document.domain,'');
var a='/papier-do-drukarki';
var b='/organizacja-dokumentow/segregatory';
var c='/przybory-do-pisania-i-korygowania/dlugopisy';
var d='/papier-do-drukarki';
if (requestUri==a || requestUri==b || requestUri==c || requestUri==d){
document.write("<div id='opis'>[[METATAG-KEYWORDS]]</div>");
}
</script>


Obecny skrypt spełnia moje wymagania, ale jak widać ograniczony jest przez ręczne dodawanie zmiennych. Chciałbym go poprawić tak, aby jak na końcu pojawi się liczba podstrony wywołana przez pager np. http://domena.pl/nazwapodstrony/2 to nie będzie wyświetlał zawartości. Takie coś robiłem w PHP, ale JS nie mogę przeskoczyć.
Kod PHP niestety mi nie działa w tym pliku.

Mam nadzieje, że jasne o co mi chodzi smile.gif

Pozdrawiam
Sephirus
[JAVASCRIPT] pobierz, plaintext
  1. var requestUri = window.location.pathname; // tu można było krócej
  2. var a='/papier-do-drukarki';
  3. var b='/organizacja-dokumentow/segregatory';
  4. var c='/przybory-do-pisania-i-korygowania/dlugopisy';
  5. var d='/papier-do-drukarki';
  6.  
  7. if ((requestUri.indexOf(a) == 0 || requestUri.indexOf(b) == 0 || requestUri.indexOf(c) == 0 || requestUri.indexOf(d) == 0) && !requestUri.match(/\/[0-9]+$/)) { // kawalek tutaj i tyle
  8. document.write("<div id='opis'>[[METATAG-KEYWORDS]]</div>");
  9. }
[JAVASCRIPT] pobierz, plaintext


EDIT: zapomniałem zmienić na indexOf - bez tego by nie działało
Vachu
Jeżeli dobrze to zastosowałem to dodany fragment nie robi różnicy. W tym momencie wyświetlany jest opis tylko do wskazanych podstron - podanych w zmiennych. Pozostałe nie wyświetlają jednak zawartości. Chodzi mi o to, że jak dodam opis do kolejnej kategorii to nie będę musiał w kodzie kolejnej zmiennej dodawać.



Z indexOf, skrypt robi dokładnie to samo co mój.
Sephirus
Hmm może Cię źle zrozumiałem - wg tego co pisałeś rozumiem to tak:

Masz stronę /costam-costam i dla niej ma się pokazywac ten opis (warunek ma być spełniony) ale dla strony /costam-costam/1 lub /costam-costam/2 już ma się ten opis nie pokazywać (warunek nie spełniony) - o to chodzio? Tak powinien działać ten skrypt obecnie - powinien wycinać ten opis jeśli pojawi się numer strony.

Bo jeśli chodzi o to że to ma działać dla każdej strony - czyli /cokolwiek i /cokolwiek/[numer] to wystarczy dać:

[JAVASCRIPT] pobierz, plaintext
  1. var requestUri = window.location.pathname;
  2.  
  3. if (!requestUri.match(/\/[0-9]+$/)) {
  4. document.write("<div id='opis'>[[METATAG-KEYWORDS]]</div>");
  5. }
[JAVASCRIPT] pobierz, plaintext
Vachu
Może faktycznie chaotycznie opisałem, przepraszam smile.gif

Generalnie mam sklep Internetowy. W sklepie są kategorie. 4 kategorie są pozycjonowane dlatego już mają opisy. Dodałem taki warunek, że jak kliknę żeby pojawiła się kolejna podstrona z produktami tej samej kategorii to zniknie tekst. Kolejne podstrony z produktami tworzą nowy adres, na niej jest również opis. Google zaindeksuje wszystkie te adresy co stworzy duplikat.

Mój początkowy skrypt rozwiązał ten problem tylko dla 4 podstron. Niestety jak będę chciał dodać opis do kolejnej kategorii to nie zadziała, będę musiał dodać nową zmienną itd.

Docelowo chciałbym, żeby na wszystkie podstrony w sklepie wyświetlało opisy, ale jak kliknę dla poszczególnej podstrony page-r z kolejną porcją produktów to tekst powinien zniknąć, żeby Google nie zaindeksowało tej samej treści pod innym adresem.

Cytat(Sephirus @ 18.12.2013, 13:37:17 ) *
Hmm może Cię źle zrozumiałem - wg tego co pisałeś rozumiem to tak:

Masz stronę /costam-costam i dla niej ma się pokazywac ten opis (warunek ma być spełniony) ale dla strony /costam-costam/1 lub /costam-costam/2 już ma się ten opis nie pokazywać (warunek nie spełniony) - o to chodzio? Tak powinien działać ten skrypt obecnie - powinien wycinać ten opis jeśli pojawi się numer strony.

Bo jeśli chodzi o to że to ma działać dla każdej strony - czyli /cokolwiek i /cokolwiek/[numer] to wystarczy dać:

[JAVASCRIPT] pobierz, plaintext
  1. var requestUri = window.location.pathname;
  2.  
  3. if (!requestUri.match(/\/[0-9]+$/)) {
  4. document.write("<div id='opis'>[[METATAG-KEYWORDS]]</div>");
  5. }
[JAVASCRIPT] pobierz, plaintext



Działa, dziękuje bardzo za pomoc.

Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.