在我的网站上有一个按钮,以前只用调用一个函数来调用
自从添加了执行AJAX调用的代码后,浏览器会阻止在AJAX调用的
我可以将服务器端检查移动到在弹出窗口中打开的页面上,但如果可能的话,我希望在打开弹出窗口之前进行检查。
代码:
window.open
,但是最近需要在弹出窗口打开之前进行服务器端检查。自从添加了执行AJAX调用的代码后,浏览器会阻止在AJAX调用的
success
回调中打开的弹出窗口。我了解到如果不是由用户点击事件调用的弹出窗口,浏览器可能会阻止弹出,所以我尝试将AJAX请求设置为async: false
,这在Firefox中解决了问题,但Google Chrome仍然阻止我的弹出窗口。是否有任何方法可以避免这种情况?我可以将服务器端检查移动到在弹出窗口中打开的页面上,但如果可能的话,我希望在打开弹出窗口之前进行检查。
代码:
<a id="attackButton" href="#">Attack Base!</a>
<script type="text/javascript">
$(function() {
$('#attackButton').click(function() {
$.ajax({
url: baseurl + '/index.php?option=com_pbbgs&format=raw&getinfo=goingame',
data: { 'gameid': 618 },
dataType: 'text',
async: false,
type: 'POST',
success: function(data) {
eval(data);
if (window.gameURL) {
goingameRaw();
}
}
});
return false;
});
});
function goingameRaw()
{
window.open(window.gameURL,'test','left=20,top=20,width=1024,height=640,toolbar=0,resizable=0,location=0');
}
</script>
示例响应体:
window.gameURL="http://mydomain.com/index.php?option=com_pbbgs&format=raw&startgame=618&width=1024&height=640";checktutorial('js','attack');