Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   почему эта функция работает только в FF ? (https://javascript.ru/forum/css-html/67248-pochemu-ehta-funkciya-rabotaet-tolko-v-ff.html)

booratino 06.02.2017 01:05

почему эта функция работает только в FF ?
 
Хочу при нажатии на картинку отправить серваку код. вызов такой:

<img src="pic/galka.gif" width="20" height="20" border="0" value="выбрать" onClick="SubmitNum('123'); window.close();" >

функция такая:

function SubmitNum(num) {

var ff = document.createElement("form");
ff.method = "POST";
ff.style.display="none";
document.body.appendChild(ff);
var el = document.createElement("input");
el.name="take.this.fancy.code";
el.type="hidden";
el.value=num;
ff.appendChild(el);
ff.submit();
}
</script>

Работает только в ффоксе. Что я не правильно сделал?

ksa 06.02.2017 09:27

Цитата:

Сообщение от booratino
Работает только в ффоксе.

Бивас, тест! (с)

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<!--
<script src='http://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
function SubmitNum(num) {
	var ff = document.createElement("form");
	//ff.method = "POST"; 
	ff.method = "GET"; 
	ff.style.display="none";
	document.body.appendChild(ff); 
	var el = document.createElement("input");
	el.name="take.this.fancy.code";
	el.type="hidden";
	el.value=num;
	ff.appendChild(el);
	ff.submit();
}
</script>
</head>
<body>
<button onClick="SubmitNum('123');">test</button>
</body>
</html>

У меня в Опере, Хроме и ИЕ9 работает...

booratino 06.02.2017 13:48

причина была в window.close. вот так работает. спасибо. :)

<img src="pic/galka.gif" width="20" height="20" border="0" value="выбрать" onClick="SubmitNum('123'); setTimeout(function(){window.close();},500); " >


не, ну, нормально? написано же: 1) отправить, 2) закрыть. Нет, сперва закрывает, а потом отправлять нечего. :))

ksa 06.02.2017 15:46

Цитата:

Сообщение от booratino
написано же: 1) отправить, 2) закрыть.

Ты про асинхронность слышал?

booratino 06.02.2017 17:48

до сегодняшнего дня нет. находился в счастливом неведении.

ksa 07.02.2017 09:20

Цитата:

Сообщение от booratino
до сегодняшнего дня нет. находился в счастливом неведении.

Тогда тебе еще читать и читать... ;)


Часовой пояс GMT +3, время: 19:37.