Cześć,
może ktoś zerknać na tę stronkę (http://warlock24.googlepages.com/index.html) i mi powiedzieć co mam zrobić aby klikanie w linki o zawartości href="#" nie powodowało przeładowania strony?
weźmy na przykład menu "Moje programy" -> sdVideoPlayer - po załadowaniu javascriptem odpowiedniej treści tam gdzie powinna się znaleźć następuje absolutnie niepotrzebne przeładowanie strony i sprawia że nie da się przejrzeć podstron
Nie mogę potwierdzić problemu. Aczkolwiek mam testową Operę (najnowszą, publiczną dla Linuksa). W każdym razie sprawdź, jak się sprawuje skrypt z pustym atrybutem href.
To wstrętny błąd Opery, który jest już teoretycznie naprawiony (była taka informacja, czy coś pokręciłam?), ale i tak się pojawia - czasem wszędzie a czasem na pojedynczych stronach. Normalnie po najechaniu wskaźnikiem na taki link pokazuje się na końcu adresu znak #, w "popsutej" operze tego nie ma.
Ja sobie z tym radziłam czyszcząc coś w Narzędzia->Wyczyść historię przeglądania... ale zdarza się to bardzo rzadko i nie pamiętam dokładnie, które opcje trzeba zaznaczyć (raczej nie ciasteczka i hasła). Możliwe też, że metoda zadziałała przypadkowo a przyczyna tkwi w czymś innym. Niestety nie mam teraz "zainfekowanego" profilu, żeby to sprawdzić.
Originally posted by Big_Z:
sprawdź, jak się sprawuje skrypt z pustym atrybutem href.
prawdopodobnie strona działałaby dobrze w operze ale przestałaby działać w IE ponieważ znaczniki < a href="" > w IE sa wyświetlane jako zwykły tekst a nie linki Więc stoję przed następujcym wyborem: albo będzie działać w IE albo w Operze a ja nie chcę rezygnować z AJAX'a
Originally posted by Sombria:
Ja sobie z tym radziłam czyszcząc coś w Narzędzia->Wyczyść historię przeglądania... ale zdarza się to bardzo rzadko i nie pamiętam dokładnie, które opcje trzeba zaznaczyć (raczej nie ciasteczka i hasła).
raczej chodzi o coś innego. Błednym działaniem według mnie jest sytuacja w której:
- klikam na link, który ma załadować do dokumentu treść mojej podstrony
- javascript (w postaci jquery) modyfikuje moj stronę tak że treść podstrony zostaje wpisana w jej strukturę ($().load()
- po zakończeniu działania skryptu (po zmodyfikoaniu stony przez js) następuje głupie i wogóle nie potrzebne przeładowanie (odświeżenie) całej strony (to się dzieje zreszta tylko w Operze - więc uważam to za jej bład). Nie sadzę żeby to była wina ciasteczek ani cacheowania strony
W tym wypadku znaczniki <a> nie są linkami, a obiektemi do których przypisano uruchomienie skryptu. Teoretycznie powinno dać się przypisać takie zachowanie do dowolnego elementu, więc można spróbować.
Jeśli to nie zadziała, zrób wykrywanie przeglądarek i dla Opery wykasuj w DOM atrybuty href, względnie tylko ich wartości.
Originally posted by warlock24:
po zakończeniu działania skryptu (po zmodyfikoaniu stony przez js) następuje głupie i wogóle nie potrzebne przeładowanie
Normalnie w Operze NIE występuje przeładowanie strony przy href="#" - u mnie strona działa prawidłowo. Czasem jednak coś się psuje i występuje efekt o którym piszesz. Zwróć uwagę na link http://img155.imagevenue.com/aAfkjfp01fo1i-6384/loc759/74631_zrzutekranu-4_122_759lo.jpg - u Ciebie najprawdopodobniej nie ma # na końcu.
Możesz też ominąć błąd wpisując href="#fikcyjna_etykieta".
no proszę aż trzy rożne rozwiązania problemu Chyba skuszę się na ostatnie, z natury leniwy jestem a to najmniej roboty
dzięki wszystkim
Cały ten błąd występował chyba tylko w starszych wersjach Opery? Ja sprawdziłem na Twojej stronie zachowanie z # zamiast #a i było OK. Na pewno masz najnowszą wersję Opery?
Swoją drogą ten AJAX bardzo mocno utrudnia nawigowanie i nie pozwala na linkowanie do podstron czy też dodawanie podstron do zakładek. Zdajesz sobie z tego sprawę?
Originally posted by Zajec:
Na pewno masz najnowszą wersję Opery?
windows 2000, Opera ver. 9.21
Originally posted by Zajec:
Swoją drogą ten AJAX bardzo mocno utrudnia nawigowanie i nie pozwala na linkowanie do podstron czy też dodawanie podstron do zakładek. Zdajesz sobie z tego sprawę?
Cóż począć. Uparlem się zrobić stronę na googlepages a tam nie ma żadnego języka serwer side, nie zamierzam robić strony całkowicie statycznej - nie chce mi się, iframe odpada bo też tych linków nie będzie, google page creator to też niezłe badziewie, gdybym zrobił stronę całkowicie we flash'u to chyba i tak na jedno by wyszło. Istnieje jeszcze jakaś alternatywa?
Polecam zmienić hostingowy serwer ;-)
porneL spisał kiedyś alternatywne dla ramek rozwiazania, możesz je przejrzeć: http://pornel.net/ramki
Originally posted by Zajec:
Cały ten błąd występował chyba tylko w starszych wersjach Opery? Ja sprawdziłem na Twojej stronie zachowanie z # zamiast #a i było OK. Na pewno masz najnowszą wersję Opery?
Ha, czyli dobrze zapamiętałam, że jest już "naprawiony". Niestety, potwierdzam, że czasem się pojawia, ale nie na stałe - u mnie znika po wyczyszczeniu czegoś w historii. A pojawia się przy intensywnym testowaniu jakiejś strony.
Originally posted by Zajec:
porneL spisał kiedyś alternatywne dla ramek rozwiazania, możesz je przejrzeć: http://pornel.net/ramki
rozwiazałem wszystkie problemy wymienione w tym artykule
- podstrony można już dodawać do zakładek
- da się wchodzić na podstrony za pomoca linku (np. http://warlock24.googlepages.com/index.html#sdvideoplayer )
- da się też za pomoca wklepywania linku w pasku adresu niestety enter nie działa i po wklepaniu trzeba nacisnać przycisk odświeżania
damn im good
znacie jeszcze jakaś inna metodę przekazywania informacji z linku do javascriptu?
No, prawie nieźle. Ostatni kłopot jaki Ci został to indeksowanie strony. Boty zazwyczaj nie posiadają obsługi JS, więc takie Google zgodnie z tym o czym informuje, nie przeczyta zawartości strony. Niestety, najlepiej nadal wychodzisz na tej zmianie hostingu. Do tego indeksowania możesz także dorzucić nie działanie strony w Operze Mini.