永发信息网

window.showModalDialog怎样用post方法提交参数

答案:1  悬赏:70  手机版
解决时间 2021-01-27 05:41
window.showModalDialog怎样用post方法提交参数
最佳答案
window.open以post方式提交
第一种方式
最近在做web项目,碰到需要跨页面传递参数的功能,就是那种需要把当前页面的内容带到新开的子窗体中,以前的做法是传一个id过去,然后在新窗口中去读数据库的内容。虽然不怎么麻烦,但是如果内容么有在数据库里保存,仅仅是处以拟稿状态时,就不能实现了,用户还常常认为是个bug。考虑采用get的方式传递,把需要的内容都序列化然后,通过url去传,显得很臃肿,而且get的传递内容长度有限制。于是就想到用post的方式传递,问题在于open方法不能设置请求方式,一般网页的post都是通过form来实现的。如果仅仅模拟form的提交方式,那么open方法里那种可设置窗体属性的参数又不能用。最后想办法整了这么一个两者结合的方式,将form的target设置成和open的name参数一样的值,通过浏览器自动识别实现了将内容post到新窗口中。
比较有意思的是直接通过调用form的submit方法不能触发onsubmit事件,查看了帮助文档,必须手动的触发,否则只能看到页面刷新而没有打开新窗口。代码中只传递了一个参数内容,实际可传递多个。
具体代码如下:

Java代码
<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>
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
找一首欢快的日语歌曲歌名,感觉挺萌的
下列各项中,对作品叙述有误的两项是(5分)
汽车检测与维修大专毕业怎么找工作
阿僧祇劫的意思是什么啊?知道的请说下!
如果某人下丘脑受到损伤,则可能会导致 ①细
刚买的冰柜压缩机一直工作,十几个小时没停过
陆风X8改装哪种型号AT胎及轮毂最合
团集的意思是什么啊?知道的请说下!
临沂市河东区有几个叫王珊珊的
患者,女,39岁,每于经期口舌糜烂,五心烦热
捷达车ECP是什么意思啊!
讲授法的基本方式包括(  )。A.讲述、讲解
闺蜜男朋友分手后喜欢上了别的人骂他的短语
楚木的意思是什么啊?知道的请说下!
南通步行街在那里
推荐资讯
恒协干洗(通达路店)地址有知道的么?有点事想
30岁的一个一无是处的我会出入头地吗?
仔细观察一种你喜爰的小动物,用一段文字生动
诗奈尔洗衣会所(塔北路与乌喀路交汇处东侧诗
为什么生完孩子一年多没来月经,中间还来过一
【自然哲学】什么是古希腊的自然哲学
乐天怎么注册
今年学生办理医保卡、需要交这么多证件为什么
2020年亮点给力大试卷三年级数学下册江苏版答
梦幻西游手游角色怎么出售
永宁县工商局李俊工商所地址好找么,我有些事
银湖俱乐部地址在什么地方,我要处理点事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?