网站在点击付款后,发现支付宝弹窗会被浏览器误以为广告拦截,无法打开支付宝付款页面。
网上教的一个办法是在onclick中用window.open打开链接然后把表单数据放在链接参数里,在新页面进行付款表单提交处理。
但亲测发现这样仍然会被浏览器拦截,而且我还需要在付款后进行后台的其他操作。
接着发现如果在onclick中直接指定window.open(),打开的是空白窗口的话,浏览器并不会拦截。
这就好办了,打开空窗口并将返回的窗口变量作为参数传给后台,在后台的函数中给新窗口一个地址定向即可:
<div id="orderListSubmit" onclick="newOrderClick(window.open());">提交订单</div>
function newOrderClick(newWindow)
{
//各种操作....
//给新建窗口提交表单
var formData = $('#newOrder form').serializeArray();
var formDataString = formData[0]['name'] + '=' + formData[0]['value'];
for (var i=1; i<formData.length; i++)
formDataString += '&' + formData[i]['name'] + '=' + formData[i]['value'];
newWindow.location = 'orderCenter.html?' + formDataString;
//各种操作....
}