Blokowanie części javascript w pokazie slajdów

Witam

Otóż problem wygląda następująco.

W pewnym typie szkolenia, kazano mi odczytywać informacje zawarte w pokazie slajdów zbudowanym na php

Sęk w tym że przycisk “dalej” uaktywnia się po 10 sekundach, oparte jest to na javascripcie z tego co udało mi się ustalić.

 

I teraz pytanie

Czy da się w jakiś sposób zablokować tę część odpowiedzialną za obliczanie czasu ?

Cała blokada javascriptu nie wchodzi w grę ponieważ blokuję również filmy

 

Pozdrawiam ( przeglądarka chrome )

Chcesz zmienić kod po stronie strony (serwera) czy u siebie w przeglądarce? Jeśli w przeglądarce (np. przy pomocy jakiejś wtyczki do odpalania JS na różnych stronach), musiałbyś po prostu odblokować przycisk wcześniej lub zmienić czas timeout’u (jeśli o to jest oparte odliczanie) na krótszy.

Chciałbym uczynić to u siebie, ponieważ moja przeglądarka odczytuje ten kod i blokuje go.

Pytanie, jaką wtyczką to zrobić, lub jak bez. Próbowałem szukać, lecz udało mi się tylko zablokować całość

Nie rozumiem, blokuje go? Czyli skrypt działa nieprawidłowo? Chyba się zgubiłem co chcesz zrobić… Naprawić niedziałający (zablokowany przez przeglądarkę) skrypt, wyłączyć konieczność czekania 10 sekund, czy jeszcze coś innego?

hindus

Miałem na myśli stwierdzenie że skoro nie jest to “moje dzieło” jedynym sposobem na zablokowanie tego jest ingerencja w przeglądarkę.

Mam chyba słuszne podejrzenie że to odpowiada za ten “Stoper”

});
		
			
			InitializeTimer(6);
				

});

		var czasy = [6,4,4,4,8,];
		var dalej = false;
		var secs;
		var timerID = null;
		var timerRunning = false;
		var delay = 1000;
		var obecnie = 0;
		var cwicz = 0;
		var typy = new Array();
		
		function InitializeTimer(s)
		{
		    // Set the length of the timer, in seconds
		    $('#btnDalej').attr('disabled', 'disabled');
		    secs = s;
		    StopTheClock();
		    StartTheTimer();
		}
		
		function StopTheClock()
		{
		    if(timerRunning)
		    {
		        clearTimeout(timerID);
		    }
		    timerRunning = false;
		}
		
		function StartTheTimer()
		{
			if (secs == 0)
			{
				StopTheClock();
			    $('#btnDalej').removeAttr('disabled');
			}
			else
			{
				self.status = secs;
				secs = secs - 1;
				timerRunning = true;
				timerID = self.setTimeout("StartTheTimer()", delay);
			}
		}

Natomiast pytanie, jak to zablokować, script zawiera się w kodzie strony/slajdu, nie jest oddzielnym plikiem do którego odwołuje się dany argument kodu, szukałem różnych dodatków, nic nie skutkuje, albo blokuje całość, albo nic.

Ok. Wykorzystaj dodatek Greasemonkey albo podobny, pozwala on na wykonanie swojego kodu Javascript. A wywołać musisz tylko to: 

StopTheClock();
			    $('#btnDalej').removeAttr('disabled');

Dzięki wielkie

Niestety nie działa, może słuszniej zrobie jak wkleje całą zawartość scriptu

<script type="text/javascript">
		var wyslany = false;

$(document).ready(function() {
	
	$('#send').click(function(e) {
		e.preventDefault();
		$('#wiadomosc').toggle();
	});
	
	$('#wiadomosc_wyslij').click(function() {
		
		if($('#tresc').val().length)
		{
			$('#loader').show();
			$('#wiadomosc_tresc').load('/wyslij_wiadomosc', 
				{
					'temat' : $('#temat').val(),
					'tresc' : $('#tresc').val(),
					'email' : $('#email').val(),
					'tel' : $('#tel').val(),
					'kursant': $('#wiad_kursant').val(),
					'slajd' : $('#wiad_slajd').val(),
					'modul' : $('#wiad_modul_nr').val(),
				},
				function(a, b, c)
				{
				}
			);
		}
		else
		{
			alert('Proszę wpisać treść wiadomości!');
		}
	});
	
	$('#wiadomosc_zamknij').click(function(e) {
		e.preventDefault();
		$('#wiadomosc').hide();
	});
	
			$('#slajd_main_div p').css('padding-top', 30);
		
		window.scrollTo(0, 150);
		
		$('#btnPowrot').click(function() {
		    
			el_form = $('#form_dalej');
			el_form.find('#powrot').val(1);
			el_form.submit();
		});

		$('#form_dalej').submit(function() {
			if ($(this).find('#powrot').val() == 1) {
				$('#slajdmodul').val($('#slajdmodul_val').val());
				if (!wyslany) {
					wyslany = true;
					return true;
				} else {
					return false;
				}
				
			}
			
			if (secs <= 0) {
									var elem = $('#anim_'+obecnie);
		
					if (elem.length) {
						$('#anim_'+obecnie+', #anim_'+obecnie+'_0').css('visibility', 'visible');
						obecnie++;
							
							InitializeTimer(czasy[obecnie]);
											} else {
						$('#slajdmodul').val($('#slajdmodul_val').val());
						if (!wyslany) {
        					wyslany = true;
        					return true;
        				} else {
        					return false;
        				}
					}
		
					return false;
							} else {
				return false;
			}
				$('#slajdmodul').val($('#slajdmodul_val').val());
				if (!wyslany) {
					wyslany = true;
					return true;
				} else {
					return false;
				}
			});
		
			
			InitializeTimer(13);
				

});

		var czasy = [13,13,13,];
		var dalej = false;
		var secs;
		var timerID = null;
		var timerRunning = false;
		var delay = 1000;
		var obecnie = 0;
		var cwicz = 0;
		var typy = new Array();
		
		function InitializeTimer(s)
		{
		    // Set the length of the timer, in seconds
		    $('#btnDalej').attr('disabled', 'disabled');
		    secs = s;
		    StopTheClock();
		    StartTheTimer();
		}
		
		function StopTheClock()
		{
		    if(timerRunning)
		    {
		        clearTimeout(timerID);
		    }
		    timerRunning = false;
		}
		
		function StartTheTimer()
		{
			if (secs == 0)
			{
				StopTheClock();
			    $('#btnDalej').removeAttr('disabled');
			}
			else
			{
				self.status = secs;
				secs = secs - 1;
				timerRunning = true;
				timerID = self.setTimeout("StartTheTimer()", delay);
			}
		}

	</script>

 

Próbowałem również przyśpieszyć czas przeglądarki z pomocą cheath engine, lecz nic z tego.

Wątpie aby korzystał z czasu systemu…

 

Jak chcesz skrócić czas to zmień:

secs = s;

Na 

secs = 0;

A jak chcesz coś konkretnego to wrzuć też html lub link do strony.

PS. te w/w funkcje są ok, tyle że musisz je wywołać przy każdym załadowaniu formularza.

drobok:

Proszę http://wklej.to/jcAlY

Nie ma sensu zaśmiecać forum całym kodem

 

Natomiast, czas jest zmienny w zależności od slajdu

Tak więc co ci nie działa ? 

Tak jak pisałem wcześniej, widzimy w kodzie zawartego timera, nie jest to mój kod więc nie mogę tego zmienić.

Cały kod generuje pokaz slajdów, w którym mamy zaciemniony przycisk “dalej” przez czas określony w timerze 

Na prosty język: Zależy mi aby usunąć timera ( Wcześniej zaproponowany Greasemonkey nie działa ) lub też Aby zmniejszyć/Przyśpieszyć czas oczekiwania aż skończy odliczać i udostępni przycisk dalej. 

 

A już zupełnie prościej. Mam do przejścia “szkolenie” konkretnie kwalifikację przewozu, szkoła przygotowała stronę php pokaz slajdów, w którym zastosowała trick z zaciemnionym “Dalej” przez określony czas “teoretyczny na przeczytanie danego slajdu aby przejść na następny” slajdów zawiera się około 1000 i zabierają zbyteczne dla starego kierowcy informacje jak “Co oznacza R na skrzyni biegów” i tym podobne. Wolałbym znacząco móc klikać ciągle “Dalej” bez mozolnego oczekiwania i spokojnie zatrzymać się na informacjach które są dla mnie istotne. 

Źle dodajesz skrypt w greasemonkey. Bowiem w konsoli wszystko działa ładnie jak powinno. Natomiast jeśli skrypt waliduje czas po stronie serwera to nie zrobisz kompletnie nic :wink:

drobok:

Wątpię aby ktoś zbudował script prostego pokazu slajdów dla około 300 kursantów miesięcznie w oparciu o zapytania o czas przy każdym slajdzie, wydaje mi się że serwer by nie wytrzymał, chyba ze sporo zainwestowali w niego, ale sam styl budowy strony, błędy ortograficzne itd, nie pokazują zbytniego przyłożenia się do faktu.

Przeszukując scripty, również można natrafić na typowe komentarze z “gotowców” typu “tutaj wpisz czas” itd.

 

Jeszcze dodam script z panelu “trenera” gdzie funkcja “dalej” jest ciągle odblokowana

może to coś pomoże…

$(document).ready(function() { $('#slajd_main_div p').css('padding-top', 40); window.scrollTo(0, 150); var dalej = false; var secs; var timerID = null; var timerRunning = false; var delay = 1000; var obecnie = 0; var cwicz = 0; var czasy = new Array(); var typy = new Array(); $('#form_dalej').submit(function() { var elem = $('#anim_'+obecnie); if (elem.length) { $('#anim_'+obecnie+', #anim_'+obecnie+'_0').css('visibility', 'visible'); obecnie++; } else { return true; } return false; }); $('#btnPowrot').click(function() { $('#form_dalej #powrot').val(1); $('#form_dalej').submit();	}); }); function InitializeTimer(s) { // Set the length of the timer, in seconds $('#btnDalej').attr('disabled', 'disabled'); secs = s; StopTheClock(); StartTheTimer(); } function StopTheClock() { if(timerRunning) { clearTimeout(timerID); } timerRunning = false; } function StartTheTimer() { if (secs == 0) { StopTheClock(); $('#btnDalej').removeAttr('disabled'); } else { self.status = secs; secs = secs - 1; timerRunning = true; timerID = self.setTimeout("StartTheTimer()", delay); } }

 

Dodam że różnica też jest w usposobieniu pliku gdzie u “kursanta” jest wrzucony w kod tak jak dodałem wcześniej

Natomiast u trenera jest jedynie odniesienie script src=