Skocz do zawartości

[JavaScript] Rozpoznanie, zmiana i skok do URL


Polecane posty

Tworzę malutkie rozszerzenie do Chrome'a, generalnie chodzi o to, że extension sprawdza, czy URL zakończony jest na np. ".jpg" - wtedy pokazuje ikonkę, której kliknięcie uruchamia skrypt JS. To wszystko prościzna, problem właśnie ze skryptem. Ten ma sprawdzić URL karty, znaleźć końcówkę (dokładniej: ostatnie 2 znaki przed finalną kropką) i sprawdzić, czy jest ona liczbą - jeśli tak, to ma zwiększyć ją o 1 i utworzyć zeń nowy adres URL (taki sam jak obecny, ale z liczbą większą o 1) a następnie do niego przejść.

Problem niby banalny, ale po prostu nie znam składni JS. Żeby nie wyjść na tego lenia co to by chciał żeby mu wszystko zrobić, zrobię Pascala jak ja to widzę, może ktoś pomoże przetłumaczyć to na JS albo rzuci jakiś lepszy pomysł...

 

var
tenUrl: string;
tenNumer: integer;
kropa: integer;
nowyNumer: integer;
nowyUrl: string;
temp: string;

tenUrl := sprawdzUrl();
kropa := pos(tenUrl, ".jpg");
temp := copy(tenUrl, kropa - 2, 2);
nowyUrl := copy(tenUrl, 0, kropa - 2) + inc(kropa) + ".jpg"; {chyba można incować string... jak nie to nie wiem co tu zrobić}
skoczDoUrl(nowyUrl);

Link do komentarza
Udostępnij na innych stronach

Oto kod JS, jeżeli Cię dobrze zrozumiałem to powinien być poprawny.

 

var url=window.location.href; //pobierz url
var numer=parseInt(url.substr(url.indexOf('.jpg')-2,2)); //wyciągnij dwa ostatnie znaki przed rozszerzeniem i spróbuj zamienić na liczbę
if (numer>0) { //jeżeli prawidłowa liczba
 numer++; //zwiększ ją
 var newUrl=url.substr(0,url.length-6)+numer+'.jpg'; //utwórz nowy url
 window.location.href=newUrl; //i przejdź do niego
}

 

Pozdrawiam smile.gif

Etharnion - 2D RPG

Szukam grafika chętnego do współpracy przy projekcie.

Link do komentarza
Udostępnij na innych stronach

Wielkie dzięki!

 

Przeanalizowałem to, co napisałeś. Twój kod ma problem z jednym przypadkiem - co z plikiem pic02.jpg? Twój kod przejdzie na podstawie takiego URLa do pliku pic3.jpg. Jednak na podstawie tego kodu (plus krótkiej lektury składni JS) zbudowałem kod działający i w takiej sytuacji, niezależnie jak wiele liczb jest w nazwie pliku i bez względu na rozszerzenie. Należy Ci się jednakowoż wzmianka w credits :)

 

Problem jednak pojawił się w innym miejscu. Nie orientuje się ktoś z użytkowników, czy Chrome pozwala na używanie i modyfikację window.location.href? Czy obowiązkowe jest formułowanie tab.url i zmiana tego przy pomocy chrome.tabs.update()? Bo jakoś wtyczka nie chce działać (mimo, że kod przetestowany był jako osobny skrypt) - czyli gdzieś musi być błąd...

 

EDIT (8.4.2010 18:11): Te rozszerzenia do Chroma to dziwna rzecz jest. Mimo wszystko wtyczkę ukończyłem, wszystko działa tak jak powinno.

Odpowiem sam sobie i potencjalnym zainteresowanym (kosztowało mnie dowiedzenie się tego kilka razy po regulaminowe 15 minut, że tak popiszę się jego znajomością :P) na pytanie o href w chromie: nie można stosować do znalezienia obecnego położenia sformułowania window.location.href. Koniecznie należy używać poleceń z API chroma, tutaj byłoby to Tabs API i właściwość tab.url.

 

Wtyczka dostępna jest pod tym adresem.

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...