Witam, mam problem z funkcją load w jquery, a konkretniej w przypadku interpretowania jej przez przeglądarkę Internet Explorer.
Mianowicie sprawa wygląda następująco: Mam stronę główną index.php, gdzie aktualności są wyświetlane za pomocą fukncji load w jquery. Czyli mam sobie plik aktualnosci.php i do tego pliku poprzez dodanie do urla parametrów wyświetlam aktualności. Czyli np.
index.php
Aktualności 1
Aktualności 2[/code]
index.php
[code]
I to działa ok pod wszystkimi przeglądarkami, ale jeżeli mamy sytuację, że niektóre aktualności mają opcję “czytaj więcej” to w pliku aktualnosci.php jest skrypt który umożliwia przeczytanie tej konkretnej informacji. Czyli np. mamy jakiś warunek, który sprawdza czy przy danym newsie ma być opcja ‘czytaj więcej’ i w którymś przypadku będzie. Więc wyświetla się link aktualnosci.php
//Aktualnosc
Czytaj więcej[/code]
i skrypt js:
aktualnosci.php
[code] });
I w przeglądarkach Firefox, Opera, Chrome działa to bez zarzutów. Natomiast w przypadku przeglądarki Internet Explorer pierwsze aktualności wczytuje ok, ale przy opcji ‘czytaj więcej’ nic się nie dzieję. Jakby ten kod js z pliku aktualnosci.php nie wykonywał się poprawnie lub jakby w ogóle nie był widziany przez przeglądarkę.
i potem php już dalej przetwarza ten kod. Ale zrobiłem sobie rozpoznanie czy w ogóle widzi tą zmienną $_GET[‘kategoria’] w tym pliku aktualnosci.php i w firefoxie, chromie i operze pokazuje
Nie jest, ze względu na to iż nie działa on w wypadku wyłączonego js’a. Lepiej pisać w czystym php, by potem jquery robić samo przeładowanie bez odświeżenia
@drobok : pokaż mi współczesną stronę www w ogóle bez js ? Ludzie chcą by strony byly interaktywne a tylko js albo flash/silverlight to zapewni.
dobrym pomyslem zamiast wstawiania dla każdego linku bloku jest wysłanie Ajaxem calego zestawu linkow( w tym nazwy, adres url do wczytania, komentarzy itd) i budowie tego po stronie js. Albo budowanie zakazdym razem tego w php dla calego zestawu.
IE wyrzuca jakies bledy na konsoli bledow ? pokaz nam jeszcze jak przypisujesz akcje do przycikow “pokaz wiecej”
spoko wiem, o co chodzi. IE automatycznie wrzuca do linkow w atrybucie href, ktore maja hash, adres samej strony;
jak rozumiem wszystkie linki maja adres zaczynajacy sie od “#” ?
w takim razie utni te stringi do tego znaku.
napisalem w mintuke prosta funkcyjka js’owa wyciagajaca hashe z adres url :
function getHash(addressUrl){
var p = addressUrl.indexOf('#');
if (p >= 0){
return addressUrl.slice(p+1);
}
return addressUrl;
}
alert(getHash("www.gazeta.pl/aktualnosci#pl_gfg"));
alert(getHash("#pl_gfg2"));
alert(getHash("pl_gfg3"));
te alerty sa tylko do sprawdzenia. gdy nie ma znaku zwraca caly string
moze pomoglem, a jak nie o to chodzilo to podaj cos wiecej o tym przypadku.
U mnie działa to w ten sposób, że z bazy jest wyświetlana lista z menu i w kodzie html wygląda to mniej więcej tak:
Aktualność 1
Aktualność 2
Aktualność 3
[/code] no i potem mam skrypt w js
[code] $(".menu_link").click(function() { var link = $(this).attr(‘href’); link = link.replace("#", “”); $("#info").load(‘aktualnosci.php?kategoria=’+link); });
Nic nie jest generowane, wszystko mi działa na tym schemacie przy wybieraniu kategorii z tego menu.
A to jakbym miał robić zwyczajnie odnośniki czyli np. zamiast #aktualnosc1 to ?kategoria=aktualnosc1 to jak z poziomu jquery zrobić, aby po kliknięciu takiego linku (przy domyślnie włączonej obsłudze js) nie odświeżało strony tylko wczytało ją do tego diva id=“info” bez odświeżania?
wlasnie tu jest pies pogrzebany, ze niby wszystko ladnie jakby to chodzilo poprawie. to i tak zwykle sie to robi z przeladowaniem strony i zaladowaniem wtedy do tego diva odpowiednia zawartosc. Powod ? bo takie czasy ze prostsze i pewniejsze sposoby sa czesciej wybierane. Zwieksza to sie ilosc zaladowan strony przez co mozna pokazac wiekszy ruch na stronie, lepiej to wypada w przypadku pozycjonowania strony i obecnosci reklam, a w kazdym razie jest to prostsze.
to co drobok dodal tez ma sens, zalezy tylko jak obslugujesz te strony ladowane do wnetrza tego diva.
bo bez tego ‘event’ przekierowywało mnie na aktualnosci.php?kategoria=aktualnosc1, a nie ładowało jej do diva.
slepcu, to prawda, ale cała strona nie działa w ten sposób. Tutaj jest to akurat taki dodatek. Nie wyeliminowałem całkowicie przeładowywania strony, więc z indeksowaniem jej przez wyszukiwarki nie powinno być problemów.