MariuszS
11.01.2013, 17:48:53
Witam,
Czy to normalne, że po wyłączeniu JS w przeglądarce takie rzeczy jak: document.getElementById('boldStuff2').innerHTML = userInput; działają?
To co w takim razie nie działa?
Crozin
11.01.2013, 17:52:34
Takie coś nie ma prawa działać po wyłączeniu obsługi JS w przeglądarce.
MariuszS
11.01.2013, 17:54:32
<script type="text/javascript">
$(window).ready(function(){
function f(){
alert('aaaa');
document.getElementById('demo').className='hidden';
}
$("#c").click( function(){ f();});
});
</script>
<div id="demo" class="">coś
</div>
To tak po krótce... I czemu z wyłączoną obsługą JS wyskakuje alert oraz zmienia się klasa? Teoretycznie nie powinno...
Np. setTimeout, setInterval przestaje działać, a to wyżej nie
kamil4u
11.01.2013, 20:42:16
Wrzuć przykład na jakiś serwer. Napisz na czym testujesz.
MariuszS
13.01.2013, 23:43:37
Ten kawałek kodu nie wystarczy?
http://kaizen.domenomania.pl/js.phpKLIK otwiera alert, wyłączam JS->KLIK otwiera alert. Dopiero po przeładowaniu strony KLIK nie otwiera alertu.
KLIK2 otwiera alert, wyłączam JS->KLIK2 nie otwiera alertu - nie wymaga przeładowania.
Ale jak sprawić by w takiej konfiguracji jak działa KLIK, bez przeładowania JS sie nie wykonywał?
Any idea?
kamil4u
14.01.2013, 01:07:17
Faktycznie tak jest. Nie mam pojęcia jak rozwiązać Twój problem. Ale z drugiej strony kto wyłącza JS akurat na Twojej stronie?
skowron-line
14.01.2013, 08:59:38
Wrzuć pytanie na stackoverflow niech cały świat pochyli się nad tym problemem/ciekawostką bo naprawde jest to dziwne.
Tylko nie zapomnij podać linka do tematu
MariuszS
14.01.2013, 09:06:54
Akurat na tej stronie co podałem nikt nie musi wyłączać, ale ten problem doskwiera mi przy jednej ważnej rzeczy...
batman
14.01.2013, 09:18:11
Sprawdziłem podany przez Ciebie przykład i jest ok, tzn. po wyłączeniu js, klikanie nie powoduje pojawienie się alertów. Testowane na Fx 18.
Nasuwa mi się jedno pytanie. Czy po wyłączeniu js, odświeżyłeś stronę?
MariuszS
14.01.2013, 09:33:46
Nie, i właśnie o to chodzi żeby blokowało bez odświeżania strony. KLIK2 nie otwiera alertu bez przeładowania, tylko po samym wyłączeniu, a KLIK dalej otwiera... W tym cała zagadka.
aras785
14.01.2013, 10:14:05
MariuszS
14.01.2013, 11:08:58
Jeżeli jest to temat który ciężko rozwikłać to może ktoś poradzi mi od drugiej strony.
Na zdarzenie jquery .click odpalam funkcję "X" w której wykonuje się kod JS z m. in. setInterval wewnątrz, jeżeli ktoś wyłączy JS w przeglądarce i wywoła .click'a to funkcja się wykona ale "oleje" setInterval wykonując resztę instrukcji (co się nie może zdarzyć w moim przypadku bo zaburzy to działanie skryptu).
Chcę zrobić by po wyłączeniu JS w przeglądarce, po wywołaniu .click funkcja "X" się w ogóle nie wykonywała, tzn. może się wykonać ale bez kodu w środku.
Próbowałem to obejść właśnie w ten sposób:
- w kodzie html wstawiłem diva z class=0,
- na początku funkcji "X" sprawdzam if'em za pomocą jquery czy class=0
- jeżeli tak to ustawiam za pomocą jquery class=1, wykonuje kod funckji "X" a na koniec ustawiam za pomocą JS (document.getElementById) class=0,
- i znowu po wywołaniu f "X" sprawdzam czy class=0.
Liczyłem, że jeżeli ktoś wyłączy JS w przeglądarce to na końcu funkcji "X" nie ustawi się class=0 i przy następnej próbie wywołania funkcji "X" kod się nie wykona.
Rozwiązanie (moim zdaniem) w teorii dobre, ale jak widać w praktyce zawiodło bo JS pomimo wyłączenia, działa.
PS. Oczywiście wszystko bez przeładowania!
Cytat(MariuszS @ 11.01.2013, 17:48:53 )

Czy to normalne, że po wyłączeniu JS w przeglądarce takie rzeczy jak: document.getElementById('boldStuff2').innerHTML = userInput; działają?
Nie i jest to błąd przeglądarki (zgłoś to). Sprawdziłem na Operze/Fx i nawet bez przeładowania strony JS nie działa.
A powód jest logiczny, przeglądarka po wyłączeniu JS stosuje się do tego dopiero po ponownym załadowaniu strony. Nie musisz się tym martwić bo jest to błąd przeglądarki a nie Twój.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.