[ajax]brak reakcji w IE

0

Witam, robię sobie mała galerię zdjęć i napisałem coś takiego lecz w IE7 to nie działa. Nic się nie dzieje po kliknięciu w odnośnik ;/ We wszystkich innych przeglądarkach fajnie działa :)

<script type="text/javascript">
var tablica=new Array("1.jpg",
			         "2jpg",
				"3.jpg",
				"4.jpg");
function zmien(i){
document.getElementById('obraz_a').src=tablica[i];
}
 </script>
<img src="1.jpg" name="obrazek" id="obraz_a" />
<a href="#" onclick="javascript:zmien(2);">zmien</a>

0

Wszystko wygląda dobrze, tu nawet nie ma co się psuć. No chyba że ewentualnie ktoś zapomniał zwrócić FALSE w funkcji zmień() [diabel]
<font size="1">Cholera, jak te emoty potrafią wyrazić odczucia piszącego...</span>

0

no chyba ze tej kropki ktorej brakuje wyzej miedzy 2 i jpg nie ma tez w orginalnym kodzie

0

Zdaje mi się mimo wszystko że przy i = 2 wyświetli mu się obrazek z 3 pozycji, czyli 3.jpg

0

znajac specyfike IE wystarczy ze cos mu nie pasuje i nic nie dziala :P
ale czekaj, przyjdzie bswierczynski i na pewno Ci i nam wszystko ladnie wyjasni :)

0

nie nie, tablica jest podana przykładowa bo w oryginalnym kodzie są strasznie długie linki to zamieniłem. Dodałem return false i dalej to co było, we wszystkich działa oprócz IE 7.

0

A gdzie tu AJAX?

0

w javascripcie ...

0

Aha, czyli rozumiesz AJAX jako podmienianie strony przez JS? http://pl.wikipedia.org/wiki/AJAX
Trzeba te brzydkie hasze walić?
<a href="javascript:zmien(2);" [...]
Powinno zadziałać

0
  1. Hashe w href nie są tu błędem i należy je zostawić lub zamienić na sensowny link (np. prowadzący bezpośrednio do obrazka).
  2. Brak return false jest błędem i musisz to dodać, ale nie powoduje to problemów z podmianą obrazka w IE7, tylko powoduje niepotrzebne przejście na górę dokumentu.
  3. Uwaga dot. stylu: proponuje stosować literał tablicowy zamiast konstruktora Array, czyli nie tab = new Array("raz, "dwa"), tylko po prostu tab = ["raz", "dwa"]. Kwestię użycia globalnych zmiennych, funkcji, mieszania JS z HTML pominę, bo to za duży problem -- mogę jedynie zaproponować poczytanie o nieinwazyjnym JavaScripcie (unobtrusive JavaScript), np. w książce "Kuloodporny Ajax" Jeremy'ego Keitha.
  4. A propos Ajaxa -- tutaj go nie ma. To tylko JavaScript. O Ajaxie możemy umówić, gdy używamy XmlHttpRequest i jego pochodnych activexowych (moim zdaniem inne sposoby się nie liczą)
  5. Nie widzę tu błędu, który miałby się uwidocznić tylko w IE7 o_O.
  6. Widzę sporo potencjalnych błędów w rodzaju zjedzonej kropki w nazwie pliku, może lepiej wklej prawdziwy kod (tylko odpowiedni fragment), albo link do strony? Może tam masz jakąś literówkę, albo na IE wpływa coś innego? Testowałeś to w ogóle w IE6 i Ci tam działa? Czy tę przeglądarkę całkiem olałeś? Daj nam minimalny przypadek testowy, który u Ciebie się kaszani. Niech to będzie cała strona z DOCTYPEm, zawierająca tylko te parę linków i skrypt. I sprawdź, to ma się chrzanić w IE7. Wstaw tu, zobaczymy co się dzieje. Rozumiem, że zdajesz sobie sprawę, że zmien(2) ustawia na "3.jpg"? I że masz włączone skrypty w IE? ;-D
  7. Testowałem Twój kod u siebie zmieniając tylko literówkę z kropką i działa.
  8. Nie wiem czemu napisałem ten post w punktach.
0

Patrzyłem w opcję IE 7 i okazało się że traktował to jako wyskakujące okno, blokował je a w dodatku nie pokazywał żadnej informacji o tym że wyskakujące okno zostało zablokowane i dlatego skrypt się nie wykonywał. Ale teraz przynajmniej pokazuje info o tym że zablokował wyskakujące okno a jeśli anuluje blokowanie to wszystko działa. Pozdrawiam i dziękuje za okazaną pomoc ;)

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