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

  • 相关阅读:
    javascript cookie
    mark几个比较好的配色网站
    Javascrip 淡入淡出思路
    实验报告:统计字符串中子字符串出现的次数
    Javascript计算器
    《node入门》学习
    配置ionic(低版本)
    eclipse环境配置
    关于文档加载的方法
    javascript基础-《web前端最佳实践》
  • 原文地址:https://www.cnblogs.com/china2k/p/4254739.html
Copyright © 2020-2023  润新知