我试图在帖子中加载一个页面,其中POST变量与将要加载的页面一起发送。没有任何明确打开新窗口,但我在FF和Chrome中收到弹出窗口阻止通知。 IE还没有阻止POST,但可能会在未来更新。下面列出了触发弹出窗口的代码。
gamePage.name = 'game_page';
setTimeout('', 100);
gamePage.onload = setTimeout("$.download(getCompletePath() +'account/SomeFile.php', gameId='+game_Id+'&playMode=J', 'post', 'game_page')", 0);
这是$ .download函数:
jQuery.download = function(url, data, method, target){
//url and data options required
if( url && data ){
//data can be string of parameters or array/object
data = typeof data == 'string' ? data : jQuery.param(data);
//split params into form inputs
var inputs = '';
jQuery.each(data.split('&'), function(){
var pair = this.split('=');
inputs+='<input type="hidden" name="'+ pair[0] +'" value="'+ pair[1] +'" />';
});
//send request
jQuery('<form action="'+ url +'" method="'+ (method||'post') +'" target="' + target +'">'+inputs+'</form>')
.appendTo('body').submit().remove();
};
};
目前我们已经通过GET执行此操作,但我们正在尽可能地切换大多数(如果不是所有)GET请求。任何帮助如何在POST到iframe时绕过弹出窗口阻止程序将非常感激。
答案 0 :(得分:0)
而不是iFrame,只使用简单的DIV。
调用jQuery.post()方法,并使用jQuery.html(/ response /)函数将响应作为div的innerHTML。
类似的东西:
$.post("urlToLoad.ext", { name: "John", time: "2pm" })
.success(function(data) {
$('#yourDivID').html(data);
});