`
仁生之狼
  • 浏览: 45010 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

利用window.open实现post方式的参数传递

 
阅读更多

将form的target设置成和open的name参数一样的值,通过浏览器自动识别实现了将内容post到新窗口中。

 

function openPostWindow(url, data, name){  
	var tempForm = document.createElement("form");  
	tempForm.id="tempForm1";  
	tempForm.method="post";  
	tempForm.action=url;  
	tempForm.target=name;  
	
	$.each(data,function(name,value) {
		var hideInput = document.createElement("input");  
		hideInput.type="hidden";  
		hideInput.name= name;
		hideInput.value= value;
		tempForm.appendChild(hideInput);   
	});
	
	if(document.all){
		tempForm.attachEvent("onsubmit",function(){
			openWindow(name); 
		});        //IE
	}else{
		var subObj = tempForm.addEventListener("submit",function(){
			openWindow(name); 
		},false);    //firefox
	}
	document.body.appendChild(tempForm);  
	if(document.all){
		tempForm.fireEvent("onsubmit");
	}else{
		tempForm.dispatchEvent(new Event("submit"));
	}
	tempForm.submit();
	document.body.removeChild(tempForm);
}
function openWindow(name){  
	window.open('about:blank',name,"height=600,width=800,top=20,left=20");   
}

 

分享到:
评论

相关推荐

    window.open()实现post传递参数

    在上述描述中,提到的问题是在SSH框架下,URL长度受限且需要隐藏某些参数,因此需要寻找一种方式来通过POST传递参数。一种常见的解决方案是创建一个动态的表单,将数据放入隐藏的输入字段,然后模拟表单提交来实现...

    window.open 以post方式传递参数示例代码

    然而,如果我们想要以POST方式传递参数,就不能直接通过`url`参数实现。POST方式的参数通常是在HTML表单中定义,然后通过表单的提交(`submit`)事件来发送。因此,我们需要创建一个隐藏的表单,填入参数,然后在新...

    window.open父子窗口传值问题

    1. **使用URL参数**:在`window.open`的`url`中添加查询参数来传递数据。例如: ```javascript var url = "child.html?data=" + encodeURIComponent(value); var newWindow = window.open(url, "child"); ``` 2...

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

    于是就想到用post的方式传递,问题在于open方法不能设置请求方式,一般网页的post都是通过form来实现的。如果仅仅模拟form的提交方式,那么open方法里那种可设置窗体属性的参数又不能用。最后想办法

    showModalDialog和window.open

    - 使用`window.open`时,数据交互需要通过其他方式实现,如使用`postMessage`API。 综上所述,`showModalDialog`和`window.open`各有优势和局限性,开发者应根据具体需求选择合适的方法。在现代Web开发中,由于`...

    window.open的页面如何刷新(父页面)上层页面

    总结来说,刷新由 `window.open` 打开的父页面主要依赖于 `window.opener` 属性,结合 `location.reload()` 方法实现。在某些特定情况下,如跨域或有其他需求时,可以采用上述其他通信手段来实现类似功能。在实际...

    HTML5如何用window.postMessage在网页间传递数据

    window.postMessage的功能是允许程序员跨域在两个窗口/frames间发送数据信息。基本上,它就像是跨域的AJAX,但不是浏览器跟服务器之间交互,而是在两个客户端之间通信。让我们来看一下window.postMessage是如何工作...

    windowOpen打开新窗口

    在Web开发中,`window.open()` 是一个非常重要的JavaScript函数,用于在用户的浏览器中打开新的窗口或标签。这个函数在创建交互式用户体验时扮演着关键角色,允许开发者控制新窗口的大小、位置以及加载的URL。现在...

    利用HTML5的window.postMessage实现跨域通信

    发送消息时,调用`postMessage`方法,传入两个参数:要传递的数据和接收数据的窗口的引用(通常是`window`对象的引用或`iframe`的`contentWindow`属性)。 接收窗口需要监听`message`事件来接收数据。当接收到消息...

    Window.Open如何在同一个标签页打开

    综上所述,要在同一个标签页中使用 `window.open()` 或类似方法打开新的 URL,关键在于控制 `window.open()` 的 `name` 参数或者通过其他方式(如表单提交)来实现。当 `name` 参数与已存在的窗口或标签页匹配时,新...

    Asp.net中doPostBack介绍和弹出窗体与父窗体之间的传值

    `doPostBack`是ASP.NET中实现页面回发的关键工具,而在弹出窗体与父窗体间传递数据则需要利用各种JavaScript和ASP.NET的技术,包括URL参数、全局变量、Session/Cookie、`window.opener`以及HTML5的`postMessage`等...

    通过window.opener控制父窗体

    在发送窗口(子窗口)中,使用`window.opener.postMessage(data, targetOrigin)`发送消息,其中`data`是你要传递的数据,`targetOrigin`是接收窗口的源。在接收窗口(父窗口)中,需要添加事件监听器: ```...

    javascript 两个页面之间传值

    本篇文章将深入探讨如何使用`window.open()`方法实现这一目标。`window.open()`是JavaScript中的一个内置函数,用于打开新的浏览器窗口或者标签页,并可以指定新窗口的URL、尺寸以及窗口特性。 首先,我们来了解`...

    window.XMLHttpRequest详解

    初始化请求是通过`open()`方法实现的,它接受三个参数:请求类型(如"GET"或"POST"),URL,以及一个布尔值表示是否异步执行。 ```javascript xhr.open('GET', 'http://example.com/data', true); ``` **二、设置...

    layer.open回调获取弹出层参数的实现方法

    在一些交互场景下,我们需要在弹出层中操作并获取相关参数,然后在关闭弹出层时传递这些参数给父页面进行处理。本文将详细介绍如何通过 `layer.open` 的回调函数来获取弹出层参数并进行后续操作。 首先,让我们来看...

    easyUi弹出window窗口传值与调用父页面的方法,子页面给父页面赋值

    最后,关于标签“传值”,在Web开发中,数据传递通常有多种方式,如URL查询字符串、POST请求、localStorage、sessionStorage、cookies等。在EasyUI的弹窗场景中,我们主要关注的是通过查询字符串和JavaScript对象...

    layer弹窗:top.layer弹窗到父页面跨域解决办法

    `window.postMessage()`方法允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文档的消息传递,即跨域通信。它的工作原理是:一个窗口向其打开的子窗口、其父窗口或者任何其他与之有某种关系的窗口发送...

Global site tag (gtag.js) - Google Analytics