2016/10/24 window.open隐藏参数、参数过长、中文编码问题

HTML社交元数据实战:Twitter Card与Open Graph全解析 HTML元数据已从浏览器渲染基础升级为算法理解网页的关键接口。Open Graph和Twitter Card作为两大主流社交元数据协议,分别面向通用内容对象化与平台专属卡片体验,其原理差异决定着跨平台预览成败。掌握meta标签结构、charset声明顺序、图片尺寸规范及中文编码处理,是保障分享时标题不乱码、图片不裁切、描述有吸引力的技术前提。本文聚焦HTML head层的工程实践,覆盖静态站点与CMS动态注入场景,直击独立开发者、技术博主和小团队在微信、Twitter、Facebook等平台传播中的真实卡点 阅读详情
一般 window.open 传参数都是用Get.方式,在url后面拼接参数。
但这样有时候并不适用,如: 
1)不想被看到参数信息
2)参数过长,get有限制会被截断
3)可能有中文编码问题
所以需要用post方式 ,下面说的就是一种window.open发送post请求的方法。


网页的post一般是通过form表单的方式来实现的,所以现在来模拟form表单的方式来实现window.open效果。
主要是通过form的子元素来设置需要传递的参数,之后给form表单绑定提交事件并手动触发提交表单。完成后就是收尾工作————把创建的表单移除。
具体例子如下:
/*
*url:window.open需要的url
*data:存放window.open需要传递的参数,这里存放的是数组
*name:可传递设置窗体属性的参数等
*注:以上参数可以根据需要改变,当前的方式只是例子
*/
function openPostWindow(url, data, name){
		var categoryid = data[0];
		var reportId =data[1];
	
	//首先创建一个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;  
          
	//创建input标签,用来设置参数
          var hideInput = document.createElement("input");  
          hideInput.type="hidden";  
          hideInput.name= "categoryid";
          hideInput.value= categoryid;


	//将input表单放到form表单里
          tempForm.appendChild(hideInput);  


          var hideInput2 = document.createElement("input");
          hideInput2.type = "hidden";
          hideInput2.name = "reportId";
          hideInput2.value = reportId;


          tempForm.appendChild(hideInput2);
          
	//此为给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的效果。
          if(document.all){
              tempForm.fireEvent("onsubmit",function(){ openWindow(name); });
          }else{
              //tempForm.dispatchEvent(new Event("submit"));
              $("form").trigger("onsubmit",function(){ openWindow(name); });
          }


	//手动触发,提交表单
          tempForm.submit();


	//从body中移除form表单
          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');
}<span style="font-family: Arial, Helvetica, sans-serif;">   </span>

这篇日志说是原创但其实算是总结,很多前辈都写过类似的文章。希望看到的各位不要较真。关于代码有其他意见的欢迎留言。

Python API实战:requests与FastAPI生产级开发指南 API是现代Python应用的核心通信机制,其本质是客户端与服务端基于HTTP协议的数据交换。理解请求生命周期、状态码语义、认证机制及超时控制,是构建可靠服务的基础。requests库以连接池和会话管理支撑高并发调用,FastAPI则通过Pydantic类型驱动实现自动校验与文档生成,显著提升开发效率与接口健壮性。二者组合广泛应用于SaaS后台、数据中台和微服务集成等场景,尤其适合需要快速交付、强类型约束与生产可观测性的Python项目。 阅读详情

相关推荐

【实习】解决请求参数过长问题

解决请求参数过长问题

爱写bug的王六六 1436

window.open() 跳转其他系统,传参不放在URL 上

window.open() 跳转其他系统,传参不放在URL 上

yf18040578780的博客 4307

大厂Python自动化测试面试题合集

题目:函数的作用是什么?调用函数的语法?答案:将独立功能代码封装成模块,复用代码;函数名(实参)。题目:函数 return 作用是什么?无 return 时函数返回什么?多返回值底层是什么类型?答案:返回函数执行结果;无 return 默认返回 None;return x,y,z 底层自动封装为元组。题目:函数四大参数类型分别是什么?定义顺序要求?答案:必选参数、默认参数、可变位置 * args、命名关键字、可变关键字 **kwargs;顺序:必选→默认→*args→命名关键字→**kwargs。

悦分享 104

window.open()提交数据,参数过长会限制。请改成post提交

解决方法: 将下边这段代码放入你window.open的那个js中。调用即可! function openPostWindow(url, params) { var newWin = window.open(), formStr = ''; //设置样式为隐藏,打开新标签再跳转页面前,如果有可现实的表单选项,用户会看到表单内容数据 form...

weixin_41876987的博客 6611

【信息科学与工程学】【审计学】第一篇 招投标领域审计算法01

在每个关键流程节点(如文件上传、开标唱标、评标结束), 计算该环节所有电子文件的数字指纹(如SHA-256哈希值), 并将指纹和元数据(时间、操作人)上链存证。:从发票、合同中提取材料品名、规格、采购价、时间、地点。:对每个供应商, 提取其在历史投标中的行为序列特征, 如:中标率、与特定伙伴同时投标率、自身高报价次数、在伙伴中标项目中的“弃标”或“无效标”次数。:监控开标、评标现场音视频, 识别异常情绪(激烈争吵)、敏感关键词(“打点”、“关照”)、异常物品传递、私下交流等违规行为。

weixin_49199313的博客 816

Delphi 13.1 + DevExpress VCL 25.2.7 安装配置与实战避坑指南

在Delphi桌面开发中,控件库的版本匹配往往被忽视,却直接影响IDE稳定性和开发效率。DevExpress VCL作为成熟的商业控件集,为网格、报表、Excel交互等高频场景提供了强大支撑。对于搜索“Delphi控件安装”、“cxGrid使用”、“Excel导出”的开发者,理解版本对应关系、部署流程和常见错误排查尤为重要。本文围绕Delphi 13.1与DevExpress VCL 25.2.7的组合,从安装前的环境准备、版本选择、IDE集成验证,到控件丢失、编译报错等高频问题的排查链路,并结合cxGri

weixin_34175509的博客 361

如何隐藏window.open()的URL中的参数

如何隐藏window.open()的URL中的参数我们在使用window.open()时,URL里总是显示参数,如果我们不想让参数被用户看见,该怎么办呢? 我们可以通过创建一个虚拟的form表单来解决,看代码! function getWriteDownDetail(poNum,orgName){ var url = rt + "/demo/getWriteDownDeta

bingzhilingyi的博客 2万+

js中window.open的参数及注意注意事项

IE9下使用window.open时需要注意name参数值不能有”-“出现,否则会出现脚本错误,IE9以及版本测试没有问题 window.open(URL,name,specs,replace) 参数 说明 URL 可选。打开指定的页面的URL。如果没有指定URL,打开与新的空白窗口 name 可选。指定target属性或窗口的名称。支持以下值: _blank – URL加载到一个新的窗口。这是默认 _parent – URL加载到父框架 _self – URL替换当前页面 _top – URL替换任何可加载的框架

(转)详解前端在html页面之间传递参数的方法

项目中经常会出现的一种情况,有一个列表,譬如是案例列表,点击列表中的某一项,跳转至详情页面。详情是根据所点击的某条记录生成的,因为案例和具体的详情页面,都是用户后期自行添加的,我们开始编写时,不可能穷尽。因此跳转页面时,我们需要传递一个参数过去,这样我们才能通过这个参数进行数据请求,然后根据后台返回的数据来生成页面。因此,通过a标签跳转的方式,肯定是行不通的。 我们经常写form表单,提交时,可...

yaoct的博客 2216

龙虾 Skill 技能库|OpenClaw+Hermes 全集成 一键调用所有 AI 技能

龙虾 Skill 技能库、OpenClaw、Hermes Agent、AI 技能集成、本地 AI 自动化、办公工具、数字员工

weixin_42219287的博客 625

直升机空气动力学基础--005翼型的升阻比和气动力矩

焦点与翼型有关,总升力矩可以视为附加升力与零升力迎角升力的合成,对于对称翼型,零升力力矩为0,附加升力就是总升力,其焦点就是其压力中心。对于对称翼型,零升力力矩为0,对于非对称翼型,零升力力矩存在,与不对称度成正比。对于不对称翼型,升力对焦点的力矩保持不变。

ygf666的博客 4133

Windows Phone 7开发初体验:Silverlight与XNA移动开发入门

Windows Phone 7是微软早期面向移动终端推出的统一应用平台,基于Silverlight和XNA双技术栈构建,采用XAML声明式UI与C#托管开发范式。其核心原理在于将桌面级.NET开发能力迁移至ARM设备,通过定制化运行时、导航生命周期管理及GPU加速模拟器实现跨屏一致性。该平台虽已退出历史舞台,但其动态磁贴、全景视图、声明式布局等设计思想深刻影响了现代UI框架如Fluent Design与Flutter。对于.NET开发者而言,WP7提供了无需切换语言栈即可进入移动开发的低门槛路径,尤其适合熟

diaoqi6581的博客 346

SenseVoice 实测,阿里开源语音大模型,识别效果和效率优于 Whisper,居然还能检测掌声、笑声!5分钟带你部署体验

阿里开源语音大模型:语音识别效果和性能强于 Whisper,还能检测掌声、笑声、咳嗽等

u010522887的专栏 4万+

30个Python工程化实战技巧:从语法糖到性能优化

Python作为主流通用编程语言,其核心价值不仅在于简洁语法,更在于通过合理运用语言特性实现高可读、低开销、强健壮的工程代码。理解切片机制、元组与列表的内存语义差异、生成器的惰性求值原理,是避免常见内存泄漏与性能瓶颈的基础;掌握f-string调试、字典合并兼容方案、正则避坑等实践方法,则直接提升日常开发效率与协作质量。本文聚焦真实项目场景中的高频痛点,覆盖Python 3.7~3.12版本演进,融合对象模型、内存管理与类型提示,为中初级开发者提供可立即落地的Pythonic编码路径。

aaa1231722的博客 333

solidworks实体显示线框

solidworks实体莫名其妙显示为有点虚的线框

qq_35858902的博客 1万+

基于4G cat.1的低功耗车牌识别摄像头模组介绍

在消费类摄像头领域,4G低功耗相机已经非常普遍,在可视门锁,婴儿看护,户外监控等领域都获得了很好的应用.但是在工业领域,低功耗相机的应用还不是那么广泛.这里要介绍一款基于4G cat.1的低功耗车牌识别摄像头模组,在待机状态只有MCU和毫米波雷达以1Hz的频率工作,功耗低至500uA,并可以通过4G模块远程唤醒模组.

bindaz的专栏 1649

JS打开新窗口 window.open() 隐藏菜单栏、工具栏,配置窗口大小、滚动条等,window.open()参数详解

项目中一些页面,在有的时候需要在一个新窗口中打开,又不想在新窗口显示太多可操作信息,如隐藏菜单栏、工具栏、配置窗口大小、滚动条等。 先看看效果: 1、【这是没隐藏菜单栏等界面】 2、【这是隐藏菜单栏、工具栏等界面】 注:经测试大部分都功能都可配置,但隐藏地址栏无效location=no,因为一些浏览器会强制新窗口始终渲染位置栏! 原码实列: <...

沐枫 1万+

(秋招复习)一些SLAM基础

秋招复习--SLAM基础知识篇

weixin_45432823的博客 769

window.open()打开链接内含有中文编码问题

文章目录前言-URL中的中文变成%百分号字符问题解决-decodeURI总结 前言-URL中的中文变成%百分号字符 在项目中遇到一个bug,在A页面中对某个按钮设置了事件监听,当点击后经过一系列的处理,会调用windos.open()方法,传入的URL大概为:/abc/abc?id=1&key=测试,然后跳转到B页面。 在新页面数据渲染阶段会根据页面参数进行get请求,发现请求出错,打开浏览器开发者工具中的Network发现get请求变成了: http:xxx:xxx/abc/abc?id=1&a

shallow77的博客 3487

行业变革下的功能安全落地痛点3:高阶智驾安全责任转移 —— 从 “人为中心” 到 “机器主责” 的产业阵痛

文章围绕高阶智驾(L3 级)落地挑战,探讨安全责任从 “人控” 向 “机控” 转移的本质、技术短板导致的责任模糊、全球法规实践及技术 - 法规 - 保险的破局路径。

my9111526 126

【即插即用模块】Transformer篇 | ICCV 2025 | MALA :注意力分布神似Softmax,告别线性注意力性能短板!

MALA(Magnitude-Aware Linear Attention)是一种改进的线性注意力机制,通过引入缩放因子和偏移项,解决了传统线性注意力忽视查询幅度的问题,使其分布更接近Softmax Attention。该模块具有线性复杂度(O(n)),结合RoPE和LEPE编码实现全局-局部位置信息混合,通过z值调制平衡信息权重。实验表明MALA在轻量级视觉任务中能有效平衡效率与精度,注意力可视化显示其分布与Softmax Attention高度相似。代码提供完整的RoPE位置编码和线性注意力

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1108

window.open以post方式提交(隐藏参数)

functionopenWindowWithPost(url,keys,values) { varnewWindow=window.open(); if(!newWindow) returnfalse; varhtml=""; html+="<html>&l...

qq_15146507的博客 1970

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Window.open打开新窗口

我看到你想使用angular语言用window.open打开新窗口,传递参数不显示在地址栏中。这是一个比较复杂的问题,因为通常情况下,window.open函数会把参数作为URL的一部分传递,这样就会暴露在地址栏中。我为你找了一些网上的解决方案,希望对你有用。希望这些方案能帮助你实现你想要的功能。如果你还有其他问题,欢迎继续咨询我。

qq_43247504的博客 1911

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

解决前端对应后台的导出接口 window.open()提交数据 参数过长的问题

一般 window.open 传参数都是用Get.方式,在url后面拼接参数。 但这样有时候并不适用,如: 1)不想被看到参数信息 2)参数过长,get有限制会被截断 3)可能有中文编码问题 所以需要用post方式 ,下面说的就是一种window.open发送post请求的方法。 网页的post一般是通过form表单的方式来实现的,所以现在来模拟form表单的方式来实现window.open效果。 var winHeight = window.document.documentElement.clien

WuqibuHuan的博客 4031

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: 2016/10/13工作中有关js加载的注意事项
「已注销」
博客等级 码龄11年 0粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值