解决 地址栏参数过多的方法
(function (window) { // *****fomr表单提交解决地址栏过长**************************************************************************************************************************function openPostWindow(url, data, key, name) { //首先创建一个form表单 var tempForm = document.createElement("form"); tempForm.id = "tempForm1"; //制定发送请求的方式为post tempForm.method = "post"; //此为window.open的url,通过表单的action来实现 tempForm.action = url; //利用表单的target属性来绑定window.open的一些参数(如设置窗体属性的参数等) tempForm.target = name; for (var i = 0; i < data.length; i++) { for (var j = 0; j < key.length; j++) { if (i == j) { var hideInput = document.createElement("input"); hideInput.type = "hidden"; hideInput.value = data[i]; hideInput.name = key[j]; //将input表单放到form表单里 tempForm.appendChild(hideInput); break; } continue; } } //此为给form表单绑定事件(onsubmit),由于存在浏览器兼容问题所以此处加了一个判断。 //但实质都是为form表单绑定一个提交事件,以便之后触发实现window.open效果 if (document.all) { tempForm.attachEvent("onsubmit", function () { }); //IE } else { var subObj = tempForm.addEventListener("submit", function () { }, false); //firefox } //将此form表单添加到页面主体body中 document.body.appendChild(tempForm); //然后触发onsubmit事件时执行openWindow(name)函数。因为有特定浏览器会打开一个空白页面所以这里的function(甚至整个if)可以根据情况省略,经试验这不会影响模拟window.open的效果。 $("form").trigger("onsubmit", function () { openWindow(name); }); //手动触发,提交表单 tempForm.submit(); //从body中移除form表单 document.body.removeChild(tempForm);}function openWindow(name) { window.open(name, 'height=400, width=400, top=0, left=0, toolbar=yes, menubar=yes, scrollbars=yes, resizable=yes,location=yes, status=yes'); } // ****抛出*****************************************************************************************window.get = { openPostWindow: openPostWindow,}})(window); 使用方式: var url = page;var data = [datas,btnName,"个人房产查询",checkboxStr];var keys = ["RESULT","CXFS","MKLX","checkboxStr"];var name = "_blank" get.openPostWindow(url,data,keys,name);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现