ロードされるページと一緒に送信された POST 変数を使用して、投稿から Iframe にロードするページを取得しようとしています。新しいウィンドウを明示的に開いているものは何もありませんが、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 に POST するときにポップアップ ブロッカーを回避する方法についてのヘルプ ヘルプをいただければ幸いです。