Skrypty JavaScript nie działają w nowym oknie.

Skrypty JavaScript nie działają w nowym oknie.
GoreLam
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
0

Taki oto problem. Wysyłam formularzem dane i otwiera mi się strona która zawiera kilka linijek z kodem JavaScript. Tutaj wszystko działa. Problem jest, gdy wyślę dane ajax'em, a odebrany kod wrzucę do nowego okna. Skrypty nie chcą mi działać. Czy to normalne czy też może skrypty powinny chodzić, a ja coś skopałem? Poniżej kod otwierający nowe okno i wrzucający kod z ajax'a.

Kopiuj
		echo 'function myFunction(e) {';
			//echo 'var to_show;';
			//echo '$.ajax({';
			//	echo 'url: "awlist_p.php",';
			//	echo 'type: "POST",';
			//	echo 'data: "aw_id=" + e + "&skrypt=ajaks",';
			//	echo 'success: function(msg) {';
			//		echo 'var okno = window.open("", "to_print", "height=850,width=910");';
			//		echo 'okno.document.write(msg);';
			//	echo '}';
			//echo '});';
			echo 'document.getElementById(e).submit();';
		echo '};'; 

Dodam jeszcze, że strona w nowym oknie otwiera się prawidłowo. Tylko skrypty nie działają.

  • Rejestracja: dni
  • Ostatnio: dni
0

Z kodu który podałeś nic nie wynika - cały jest zresztą zakomentowany

Skrypty z AJAX się nie odpalają - musisz je odpalić ręcznie przez eval lub tworząc element script i dodając go do flow dokumentu

GoreLam
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
0

Przedostatnia linijka jest niezakomentowana i odpowiada za wysłanie formularza w normalny sposób i to działa. Po przeładowaniu strony skrypty śmigają aż miło. Problem pojawia się, jak tę linijkę zakomentuję, a odkomentuję resztę. Po kliknięciu na przycisk skrypt się odpala, pojawia się nowe okno, które wygląda prawidłowo, ale skrypty nie działają. korzystając z IE i opcji "Pokaż źródło" nie znalazłem problemu. Skrypty siedzą w kodzie tylko jakoś działać nie chcą.

GoreLam
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
0

No dobra. To teraz inna zagadka. Skrypty zaczęły działać po odświeżeniu tej nowej strony więc usunąłem wpis:

Kopiuj
 
	echo '$(document).ready(function(){';

Teraz śmiga jak trzeba. Jakieś słowo wyjaśnienia? Problem nie występował tylko w IE ale też w Chromie.

ŁF
  • Rejestracja: dni
  • Ostatnio: dni
0

Patrzysz do konsoli przeglądarki (F12->Console) i masz czarno na białym treść błędu.

GoreLam
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
0

Właśnie konsola nic nie pokazała. Skrypty się nie uruchamiały.

PD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 178
0

Przeglądarka wie, że to html ?
Czy pobrany kod wygląda tak ?:

Kopiuj
<!DocType html><head>
<script>
function load() {
//...
}
</script>
</head><body>
Coś tam...
</body></html>
GoreLam
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
0

Tak, przeglądarka wie, że to html. Są zasadniczo 2 różnice między jedną, a drugą metodą. W pierwszej metodzie (document.getElementById(e).submit() wysyłam dane standardowym formularzem i serwer wysyła mi nowy kod strony który wyświetla się w oknie przeglądarki. W drugim przypadku, pobieram zmienną z formularza i wysyłam ajaxem, a kod strony wrzucam do nowego okna.

Chodzi o to, żeby poprzednio wyświetlana strona była cały czas dostępna.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.