使用jquery实现以post打开新窗口

网络上已有此功能的函数,是以纯JS实现。但是在项目中发现,此函数无法兼容Firefox,由此我重写了此方法.


代码如下:

//默认新窗口配置
var windowDefaultConfig = new Object;
windowDefaultConfig['directories'] = 'no';
windowDefaultConfig['location'] = 'no';
windowDefaultConfig['menubar'] = 'no';
windowDefaultConfig['resizable'] = 'yes';
windowDefaultConfig['scrollbars'] = 'yes';
windowDefaultConfig['status'] = 'no';
windowDefaultConfig['toolbar'] = 'no';

代码如下:

/**
* 以POST表单方式打开新窗口的JQUERY实现
@param:url 需要打开的URL
@param:args URL的参数,数据类型为object
@param:name 打开URL窗口的名字,如果同一按钮需要重复地打开新窗口,
而不是在第一次打开的窗口做刷新,此参数应每次不同
@param:windowParam 新打开窗口的参数配置
* @author: haijiang.mo
*/
function jQueryOpenPostWindow(url,args,name,windowParam){

//创建表单对象
var _form = $("<form></form>",{
'id':'tempForm',
'method':'post',
'action':url,
'target':name,
'style':'display:none'
}).appendTo($("body"));

//将隐藏域加入表单
for(var i in args){
_form.append($("<input>",{'type':'hidden','name':i,'value':args[i]}));
}

//克隆窗口参数对象
var windowConfig = clone(windowDefaultConfig);

//配置窗口
for(var i in windowParam){
windowConfig[i] = windowParam[i];
}

//窗口配置字符串
var windowConfigStr = "";

for(var i in windowConfig){
windowConfigStr += i+"="+windowConfig[i]+",";
}

//绑定提交触发事件
_form.bind('submit',function(){
window.open("about:blank",name,windowConfigStr);
});

//触发提交事件
_form.trigger("submit");
//表单删除
_form.remove();
}

记录下来,以后可以用。

(0)

相关推荐

  • JQuery实现的在新窗口打开链接的方法小结

    第一种:下面的代码是针对jb51这个样式下的a都是在新窗口打开 复制代码 代码如下: <script type="text/javascript"> jQuery(document).ready(function($) { $('.jb51 a').attr({target: "_blank"}); }); </script> 第二种: 复制代码 代码如下: <script src="http://code.jquery.co

  • jquery简单实现外部链接用新窗口打开的方法

    本文实例讲述了jquery实现外部链接用新窗口打开的方法.分享给大家供大家参考.具体实现方法如下: $("a[href^='http://']").click(function(){ this.target = "_blank"; }); 或者使用下面这个 $(function(){ $("a[href^='http://']").attr({'target':'_blank'}) }) 希望本文所述对大家的jQuery程序设计有所帮助.

  • jQuery新窗口打开外链接

    对于外链,为了留住用户在本站,我们通常会使用新窗口打开,你可以设置target="_blank".然而手动一个是麻烦,另一个则是有可能会遗漏,本文通过jQuery查询要点击的链接,添加相关属性,使其打开新窗口. $(document).on('click','a',function(){ var url = this.href,hash=''; if(url.indexOf('#')>-1){ hash = !!url.split('#')[1] ? '#' + url.spli

  • 使用jquery实现以post打开新窗口

    网络上已有此功能的函数,是以纯JS实现.但是在项目中发现,此函数无法兼容Firefox,由此我重写了此方法. 复制代码 代码如下: //默认新窗口配置 var windowDefaultConfig = new Object; windowDefaultConfig['directories'] = 'no'; windowDefaultConfig['location'] = 'no'; windowDefaultConfig['menubar'] = 'no'; windowDefaultC

  • JS打开新窗口防止被浏览器阻止的方法

    本文实例讲述了JS打开新窗口防止被浏览器阻止的方法.分享给大家供大家参考.具体分析如下: 用传统的window.open()方式打开新窗口,会被浏览器阻止,那么,我们如何才能让JS打开新窗口不被浏览器阻止呢?其实办法还是有的,这里我们就来分析一下如何解决这个问题 我最近也遇到了这样的问题,所以就把弹出新窗口的方法分享给大家.欢迎大家补充哦... 第一种.使用原生javascript的window.open()方法(大部分情况下会被浏览自阻止) 第二种.模拟表单(form)提交,原理是指定表单的a

  • Ajax请求成功后打开新窗口地址

    废话不多说,关键代码如下所示: jQuery.ajax({ "type":"post", "url":"http://www.baidu.com", "success":function(rel){ if(rel.isSuccess){ window.open(rel.url,"_blank"); } } }); 这个url请求成功后window.open(rel.url,"_

  • Windows使用docker打开新窗口error解决办法

    error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.26/containers/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to c

  • js打开新窗口方法整理

    window.location="aaa.aspx" 上面的方法只能在当前页打开,如果要在新的页面打开,最简单的是用以下方法 form.target="_blank"; form.action="aaa.aspx"; form.submit(); window.top.location=url 可以在iframe中的页面在父窗口刷新打开 window.open方法可控制的样式丰富,比如我们可以控制窗口显示的大小,窗口显示的内容,以及位置等等.都是

  • javascript打开新窗口同时关闭旧窗口

    其实这个问题和浏览器的版本息息相关,作为菜鸟的我,直到现在也没有找到完美的解决办法.没办法,因为业务必须要实现,所以只好用另一种方法去做了:通过重定向URL实现打开新窗口的同时"关闭"旧窗口 test1.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> test1 </TITLE>

  • JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法

    本文实例讲述了JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法.分享给大家供大家参考,具体如下: 在一些不正规的网站,尤其是那些挂满广告的下载站,经常在你点击的下载链接之前,无论你点击网页的任何一处都会弹出新窗口. 这样的效果,可以轻松用JavaScript做到,还可以专门指定点击某一区域的Div,才触发打开新窗口的事件. 比如下图的效果: 在原网页中,指定一个Div,无论用户点击这个Div的任意区域,都会打开新窗口,而点击其它地方则不会. 在新窗口的地址栏不可以编辑,不能被调

  • vBulletin HACK----显示话题大小和打开新窗口于论坛索引页

    vBulletin HACK ----显示话题大小和打开新窗口于论坛索引页 作者:gogosoft <显示话题大小> 原因:1.1.4版本中没有此功能,而部分用户会以此作为是否查看话题的参考因素. 优点:只需要增加几行代码就可以. 缺点:因为每次显示论坛索引页都需要对该页的话题全部计算大小,所以可能会对服务器造成若干的影响. 自评:这是一个小功能,可有可无,实用与否见仁见智. 步骤: ⒈打开 forumdisplay.php ,查找" if ($announcement=$DB_si

  • Ajax打开新窗口被浏览器拦截的两种解决办法

    最近在做支付时发现打开支付窗口时被浏览器拦截了,百度了一下才发现是因为打开窗口前用ajax验证是否能支付,所以不是用户主动触发的打开ixin窗口,浏览器认为这样不安全,所以给拦截了. 解决办法一 先开始打开一个空的新窗口,然后改变新窗口的url,具体代码为 var wd = window.open(); $.ajax({ type: "POST", dataType: "json", url: URL, data: {orderNo:orderNo}, succes

  • Ajax请求响应中用window.open打开新窗口被拦截的解决方法

    一.问题描述 ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是会被浏览器给拦截了,需要用户点下. 二.问题分析 浏览器之所以拦截新开窗口是因为该操作并不是用户主动触发的,所以它认为这是不安全的就拦截了,即使 ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('click')),浏览器也会认为不是由用户主动触发的,因此不能被安全执行,所以被拦截. 说明: 1.如果是在 <a href="javascri

随机推荐