[js]czy można modyfikować adres URL widoczny w przeglądarce?

0

Witam,
Pytanie jak w temacie - czy można modyfikować adres widoczny w przeglądarce, ale bez przechodzenia do tejże strony. Wiem, że mogę modyfikować tzw kotwicę, czyli tekst po # w adresie, ale powiedzmy, że mnie to nie zadowala i chcę zmienić jeden z parametrów przekazywany GETem.
Podejrzewam, że to niemożliwe, chciażby z racji bezpieczeństa, no ale może jest jakaś magia na to.

z góry dzięki

0

no nie ma, jakby było to pewnie z tego by korzystał choćby gmail zamiast modyfikowania hashu

0

Kotwicę też możesz odczytać i sparsować. Karkołomne, ale spełnia swoje zadanie, chociażby we wspomnianym gmailu.

0

aż karkołomnym bym tego nie nazwał, aczkolwiek chcialem zeby podstrony mialy swoj unikalny adres, bo dla googla 1000 tych samych stron z rozna kotwica i zawartoscia zależną od js to jedno i to samo..

0

@dzek69:
Kontekst SEO-wy sugeruje, że rozwiązaniem na Twój problem może być zastosowanie technik ajaxowych najwyższej jakości. Mam na myśli tzw. Hijax, opisany w książce "Kuloodporny Ajax." Jeremy'ego Keitha.

Wygląda to mniej więcej tak, że -- zanim w ogóle ruszysz z pisaniem kodu JavaScript -- sprawiasz, by strona działała w czystym PHP czy innym języku po stronie serwera. Masz tam normalne linki z normalnymi parametrami (zwykły GET po znaku zapytania).

Następnie, dodajesz javasciptowy komponent Ajaxa jako nakładkę. Używając DOM (lub wygodnych wrapperów w stylu jQuery), odnajdujesz linki na stronie, które powinny prowadzić nie do przeładowania strony, a do wysłania żądania ajaxowego. Dodajesz do tych linków obsługę zdarzenia click. Po kliknięciu, wysyłane jest żądanie ajaxowe i zwracana jest wartość false (lub lepiej: wywołane zostaje evt.preventDefault()) by przeglądarka nie podążała za linkiem. Żądanie ajaxowe może być nawet konstruowane na bazie atrybutu href linku, jeśli nie chcesz trzymać parametrów żądania w kodzie JavaScript. Jeśli użyjesz href, to możesz wysłać żądanie ajaxowe pod URL zawarty w href, ale dodając np. atrybut ajax=true. Widząc ten atrybut, serwer zwróci jedynie kluczowy fragment dokumentu, pomijając <head>, nagłówek strony, menu nawigacyjne itp.

Pozwoli to Google swobodnie indeksować strony, opierając się na samej wersji w PHP czy innym języku programowania po stronie serwera. Użytkownicy, którzy mają wyłączoną obsługę JS (np. w niektórych komórkach czy firmach) też będą zadowoleni, bo strona i tak im zadziała.

0
bswierczynski napisał(a)

lanie wody

stary, nie musisz kozaczyć że przeczytałeś książkę i dowiedziałeś się czegoś do czego każdy doszedł dawno samemu
tym bardziej gdy ma się to nijak do tematu

0

Do tego Hijaxu na pewno "nie każdy doszedł". Nie jest zbyt powszechny i z tego co gadam z ludźmi, to wielu nawet o czymś takim nie słyszało i nie rozważało użycia.

Co do tego, czy się ma nijak do tematu, to też tak myślałem (tj. w ogóle nie brałem pod uwagę napisania o Hijaxie) dopóki autor tematu nie napisał tego ostatniego komentarza. Mówi w nim coś o indeksowaniu przez Google iluś tam adresów -- że jeśli będą różniły się tylko kotwicą, to to nie pomoże. To mi zasugerowało, że hijax może tutaj jednak pomóc, bo pomaga googlebotowi.

0

bo ludzie mają klapki na oczach i nie obchodzi ich to że ktoś może nie mieć javascriptu
dopiero jak google olewa ich stronę to zaczynają myśleć

teraz dopiero przeczytałem ostatni komentarz autora i muszę cię przeprosić bo faktycznie chyba mu twoja wypowiedź mogła pomóc
co mnie w sumie trochę przeraża bo jak ktoś na takie coś nie wpadł samemu to czemu nie da zarobić komuś kto się na tym zna tylko samemu próbuje robić rzeczy do których się nie nadaje

0

niestety, to o czym mówi bswierczynski jest mi znane. moja strona działa bez javascriptu i zawsze o to dbam (telefony komorkowe, czy tam lynx z którego zdarzyło mi się kilka razy skorzystać, choćby to działania na directadminie :P). elementy ajaxowe dopiero chcę dopisać.
ale tak jak mówi fdsgsdf - nijak się to ma do mojego problemu - nie trzeba mi przerabiać całej strony na ajaxową, chcę tylko modyfikować url widoczny w przeglądarce javascriptem. koniec - dlaczego i po co to kwestia drugorzędna :)
ale po necie już czytałem że raczej nic z tego, tutaj też się już dowiedziałem, że nic z tego, zostaje mi zabawa kotwicą, która nie do końca mi odpowiada, ale jakoś to przeżyję.

dzięki wielkie wszystkim

0

Może po prostu zrobić URLe:

http://example.com/serwis/index
http://example.com/serwis/rejestracja/dodatkowy_argument1/dodatkowy_argument2

Wszystko co jest po /serwis/ przekierować do skryptu PHP, np.:

   http://example.com/serwis/rejestracja/blabla/wtf
-> http://example.com/serwis/index.php?args=rejestracja/blabla/wtf

Ładnie to sparsować i robić z tym co chcesz. Wtedy możesz bez problemu operować adresem w JS. Ew. dodać ".html" na końcu przepisania żeby ładnie dla googla było.

0

bswierczynski:
Zamiast kombinować z jakimiś Hijaxami czy innymi pierdołami można np zastosować framework Apache Wicket i klaskę AjaxFallbackLink. Zapewne inne frameworki komponentowe też taką funkcjonalność udostępniają.

autor:
Zamiast kombinować tylko po stronie JavaScript może pokombinuj też po stronie serwera? Niektóre statusy HTTP wyglądają przyjaźnie:

  • 204 No Content
  • 304 Not Modified

Wydaje mi się, że jak przeglądarka otrzyma 204 to nic nie zrobi, a może zmieni się adres w pasku adresu :)

0

Jeszcze tego brakowało, żeby ktoś wyjechał ze swoim gloryfikowaniem rozwiązań Javowych, do złej grupy odbiorców piszesz.

0

GhostDog:
Javascriptowych jak już

donkey7:
I dasz mi rękę, że to zadziała na więcej niż jednej przegladarce?

Generalnie własne nagłówki - to brzmi dobrze! Tylko jak je potem przeczytać po stronie klienta? :P

0

No Content raczej pokaże pustą stronę po prostu, Not Modified może spowodować jakieś błędy jeśli nie mamy w cache danej strony, a serwer nam mówi że nie została zmieniona.

1 użytkowników online, w tym zalogowanych: 0, gości: 1