zoukankan      html  css  js  c++  java
  • js post 方式 新开窗口

    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});就可以了

  • 相关阅读:
    Day00课程前奏
    bootstrap前端框架
    html5标签
    js个人笔记
    css88
    小说拆分器
    什么是依赖注入
    与Java的约会
    Dom4J两种节点添加方法比较
    nodejs + typescript + koa + eslint + typescript eslint + prettier + webstorm
  • 原文地址:https://www.cnblogs.com/china2k/p/4254739.html
Copyright © 2011-2022 走看看