将页面发布到iframe会导致弹出窗口阻止程序阻止发布操作

时间:2012-08-14 18:56:23

标签: jquery post iframe popup

我试图在帖子中加载一个页面,其中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时绕过弹出窗口阻止程序将非常感激。

1 个答案:

答案 0 :(得分:0)

而不是iFrame,只使用简单的DIV。

调用jQuery.post()方法,并使用jQuery.html(/ response /)函数将响应作为div的innerHTML。

类似的东西:

$.post("urlToLoad.ext", { name: "John", time: "2pm" })
.success(function(data) {
    $('#yourDivID').html(data);
});