js使用post 方式打开新窗口_javascript技巧

js中一般新打开窗口很简单直接window.open(url);就可以了,

但是由于我希望传递参数到服务端,而且参数看起来很长一串,而且get方式的提交参数长度是有限制的,因此我有以下需求:

1,js中实现post提交

2,返回的页面在新窗口显示

首先我是这么做的:

复制代码 代码如下:

 $.ajax({  
                     type: "POST",  
                     url: '${contextPath}/analyse/detail.do',  
                     data: {carNum :carNum,ids:refIds},  
                     success: function(str_response) { var obj = window.open("about:blank");  
                        obj.document.write(str_response);  
                     }  
                 });

通过jQuery ajax提交,返回的数据写在新的页面中,但是由于浏览器的会拦截自动弹出的窗口,这样还需用户自己解除拦截,用户体验很差,

然后我又通过模拟form表单的提交来实现

复制代码 代码如下:

function post(URL, PARAMS) { var temp_form = document.createElement("form");     
            temp_form .action = URL;     
            temp_form .target = "_blank";
            temp_form .method = "post";     
            temp_form .style.display = "none"; for (var x in PARAMS) { var opt = document.createElement("textarea");     
                opt.name = x;     
                opt.value = PARAMS[x];     
                temp_form .appendChild(opt);     
            }     
            document.body.appendChild(temp);     
            temp_form .submit();    
        }

注意:如需新打开窗口 form 的target属性要设置为'_blank'

然后请求post('${contextPath}/analyse/detail.do',{carNum :carNum,ids:refIds});就可以了

时间: 2024-10-06 19:09:42

js使用post 方式打开新窗口_javascript技巧的相关文章

js使用post 方式打开新窗口

这篇文章主要介绍了js使用post 方式打开新窗口的相关资料,需要的朋友可以参考下 js中一般新打开窗口很简单直接window.open(url);就可以了, 但是由于我希望传递参数到服务端,而且参数看起来很长一串,而且get方式的提交参数长度是有限制的,因此我有以下需求: 1,js中实现post提交 2,返回的页面在新窗口显示 首先我是这么做的: 代码如下: $.ajax({ type: "POST", url: '${contextPath}/analyse/detail.do',

window.open以post方式将内容提交到新窗口_javascript技巧

第一种方式 最近在做web项目,碰到需要跨页面传递参数的功能,就是那种需要把当前页面的内容带到新开的子窗体中,以前的做法是传一个id过去,然后在新窗口中去读数据库的内容.虽然不怎么麻烦,但是如果内容么有在数据库里保存,仅仅是处以拟稿状态时,就不能实现了,用户还常常认为是个bug.考虑采用get的方式传递,把需要的内容都序列化然后,通过url去传,显得很臃肿,而且get的传递内容长度有限制.于是就想到用post的方式传递,问题在于open方法不能设置请求方式,一般网页的post都是通过form来实

使用按钮控制以何种方式打开新窗口的属性介绍_基础知识

<!-- 把下面代码放到<body>区域中 --> 复制代码 代码如下: <form> <div align="left"> <input type="button" Value="打开新窗口" ONCLICK="window.open('index.htm','Sample','toolbar=yes,location=no,directories=no,status=no,men

JavaScript实现按Ctrl键打开新页面_javascript技巧

(译者注: 本文解决的是按 Ctrl键时使用JS打开新页面的问题) 在简化的HTML5规范中,允许在 A 标签内包含多个 DIV 和/或其他块级元素. 现在只要用 <a> 标签包住块元素,就能搞定原来需要用JavaScript来监听并调用 window.location 实现页面跳转(redirect)功能. 但使用<a>标签的这种包装形式也有不好使的情况 -- 例如,某个块元素(block)内还有一些 <a> 标签, 这种情况下我们只想在点击parent中<a&

JS中多种方式创建对象详解_javascript技巧

1.内置对象创建 var girl=new Object(); girl.name='hxl'; console.log(typeof girl); 2.工厂模式,寄生构造函数模式 function Person(name){ var p=new Object();//内部进行实例化 p.name=name; p.say=function(){ console.log('my name is '+ p.name); } return p;//注:一定要返回 } var girl=Person('

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

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

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

 网络上已有此功能的函数,是以纯JS实现,本文为大家介绍的使用jquery实现,需要的朋友可以参考下 网络上已有此功能的函数,是以纯JS实现.但是在项目中发现,此函数无法兼容Firefox,由此我重写了此方法.   代码如下: //默认新窗口配置  var windowDefaultConfig = new Object;  windowDefaultConfig['directories'] = 'no';  windowDefaultConfig['location'] = 'no';  w

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

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

js打开新窗口方法整理_javascript技巧

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