@MyName32

На Iphone не выполняется ajax запрос. Что нужно сделать с кодом ,чтобы открылась страница оплаты на Iphone?

Есть такой код, который вызывает страницу оплаты, но на Iphone он не работает, а точнее в Safari. Также это работает, если отключить блокировку всплывающих окон. Как можно обойти это ограничение?

$(document).ready(function () {


	//$('.bb_right_inside input').attr("value", "0");




	var send_flag = 0;
	$('form[name="SIMPLE_FORM_2"]').submit(function(e){
		if(send_flag == 0){
			e.preventDefault();
			console.log('subm');
			var sum = $('input[name="form_text_100"]').val();
			$.ajax({
				type: "POST",
				url: "/ajax/kassa-ajax.php",
				data: {sum:sum},
				success: function (e) {
					window.open(e, "_blank"); 
				}
		   });
		   setTimeout(function(){
			send_flag = 1;
			$('.zakazat_pominovenie input').click();   
		   },1500);		   
		   return false;
		}
	});
	
	$('.ol_10_input.oli_1').addClass('active_ol');
	$('.button_10_plus').click(function(){
		var current = $('.bi_ozdravii .active_ol');
		current.removeClass('active_ol');
		current.next().css('display','block');
		current.next().addClass('active_ol');		
	});
	
	$('#form_checkbox_ozdravii_66').attr('checked', true);
	var priceMoney = 250;
	var namesCount = 0;
	var currentPrice = 0;
	
	$('.br_obupokoenii input').change(function (e) {
		$('.br_ozdravii input:checked').attr('checked',false);
		update_price();
	});
	
	$('.br_ozdravii input').change(function (e) {
		$('.br_obupokoenii input:checked').attr('checked',false);
		update_price();
	});

    $('.bi_ozdravii').on('keyup', 'input', function () {
        namesCount = 0;
        $('.bi_ozdravii input').each(function (e) {
            if ($(this).val() != '' && $(this).val() != ' ') {
                namesCount++;
            }
        });
        toInputDonation();
    });
    toInputDonation();
	function update_price() {
		var cb_id = $('.block_radio input:checked').val();
		if (cb_id == 66)
			priceMoney = 250;
		if (cb_id == 73)
			priceMoney = 450;
		if (cb_id == 93)
			priceMoney = 950;
		if (cb_id == 94)
			priceMoney = 10;
		if (cb_id == 95)
			priceMoney = 10;
		if (cb_id == 96)
			priceMoney = 10;
		if (cb_id == 67)
			priceMoney = 250;
		if (cb_id == 97)
			priceMoney = 450;
		if (cb_id == 98)
			priceMoney = 950;
        toInputDonation();
    };

    function toInputDonation() {
        currentPrice = namesCount * priceMoney;
		if(currentPrice == 0)
			currentPrice = 0;
		$('input[name="form_text_100"]').val(currentPrice);
		//console.log(currentPrice);
    }

    $('.block_input input').attr("placeholder", "Добавьте им в Р.п.");
    $('.bb_right_inside input').attr("type", "number");
    $('.ol_10_input').children("li").first().children("input").attr("required", "required");


	$('.br_ozdravii').click(function(){
		$(".block_input").removeClass("chernjy_block");
		$(".block_input").addClass("krasnyj_block");
	});

	$('.br_obupokoenii').click(function(){
		$(".block_input").removeClass("krasnyj_block");
		$(".block_input").addClass("chernjy_block");
	});



});
  • Вопрос задан
  • 327 просмотров
Пригласить эксперта
Ответы на вопрос 1
@haveacess
Вам не кажется что вы сами ответили на свой вопрос?)
Избавьтесь от всплывающих окон и будет вам праздник. window.open(e, "_blank"); - вот от этой заразы)

Вот возможные варианты:
Открыть страницу оплаты(сразу после нажатия оплатить). В текущей вкладке.
После оплаты (успешной/не успешной) открыть нужную страницу. Как правило такие страницы задаются в настройках вашей кассы, или какой вы агрегатор там используете. Ну и плюсом на эту страницу
Передаются данные, например номер заказа. По которым вы можете отдать нужную информацию, конечно если это необходимо.

Ссылку (кнопка оплатить) - делаем с атрибутом бланк(новая вкладка). А при нажатии, в новой - страница оплаты, в текущей - нужного вам товара.
P, s мои варианты не руководство к действию, а лишь пища для размышления
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы