利用window.open实现post方式的参数传递
来源:互联网 发布:兼职数据录入招聘 编辑:程序博客网 时间:2024/05/22 21:40
最近在做web项目,碰到需要跨页面传递参数的功能,就是那种需要把当前页面的内容带到新开的子窗体中,以前的做法是传一个id过去,然后在新窗口中去读数据库的内容。虽然不怎么麻烦,但是如果内容么有在数据库里保存,仅仅是处以拟稿状态时,就不能实现了,用户还常常认为是个bug。考虑采用get的方式传递,把需要的内容都序列化然后,通过url去传,显得很臃肿,而且get的传递内容长度有限制。于是就想到用post的方式传递,问题在于open方法不能设置请求方式,一般网页的post都是通过form来实现的。如果仅仅模拟form的提交方式,那么open方法里那种可设置窗体属性的参数又不能用。最后想办法整了这么一个两者结合的方式,将form的target设置成和open的name参数一样的值,通过浏览器自动识别实现了将内容post到新窗口中。
比较有意思的是直接通过调用form的submit方法不能触发onsubmit事件,查看了帮助文档,必须手动的触发,否则只能看到页面刷新而没有打开新窗口。代码中只传递了一个参数内容,实际可传递多个。具体代码如下:
<script>function openPostWindow(url, data, name) { var tempForm = document.createElement("form"); tempForm.id="tempForm1"; tempForm.method="post"; tempForm.action=url; tempForm.target=name; var hideInput = document.createElement("input"); hideInput.type="hidden"; hideInput.name= "content" hideInput.value= data; tempForm.appendChild(hideInput); tempForm.attachEvent("onsubmit",function(){ openWindow(name); }); document.body.appendChild(tempForm); tempForm.fireEvent("onsubmit"); tempForm.submit(); document.body.removeChild(tempForm);}function openWindow(name) { window.open('about:blank',name,'height=400, width=400, top=0, left=0, toolbar=yes, menubar=yes, scrollbars=yes, resizable=yes,location=yes, status=yes'); } </script>
- 利用window.open实现post方式的参数传递
- 利用window.open实现post方式的参数传递
- window.open url 参数post方式传递
- window.open url 参数post方式传递
- window.open 以post方式传递参数
- window.open (参数使用post方式提交)
- window.open (参数使用post方式提交)
- Window.location.href以post方式传递参数的方法
- Window.location.href以post方式传递参数的方法
- 在js 中window.open()打开新页面,post方式传递参数到新页面上
- window.open传递参数
- 使用window.open打开新窗口,以post方式传参数
- window.location.href以post方式传递参数
- window.showModalDialog 与window.open传递参数的不同?
- window.showModalDialog 与window.open传递参数的不同?
- window.showModalDialog 与window.open传递参数的不同?
- window.showModalDialog 与window.open传递参数的不同?
- 使用window.open()传递参数
- [转]做成功的项目经理人
- web.xml详解
- 大数据下的数据分析平台架构
- java对 mysql数据的备份和还原
- android bionic缺失pthread_cancel的解决方法
- 利用window.open实现post方式的参数传递
- 随笔之XP下编译Webkit
- TCP网络通信实例--消息的发送与接收
- javascript 字符串常用操作(replaceAll,trim)
- PHP+MYSQL乱码问题解决方法三步走
- 验证程序执行时间代码
- NameNode中数据节点的保存(2)——NetworkTopology
- windows DIB位图的4字节对齐
- 分页对象