html打印预览导致一些监听事件失效处理

在iframe中,HTML的input和textarea监听事件在调用打印后失效。问题在于打印过程中HTML结构被重置,script标签移位,导致监听丢失。解决方法是在打印后通过延时函数重新为input和textarea设置监听。示例代码展示了如何在Spring-Boot项目中实现这一修复。
摘要由CSDN通过智能技术生成

最近在iframe嵌入一个html,html中有一些input框和textarea框需要监听变动事件,没有点击打印之前都是可以正常监听得到的,但是调用打印方法以后就监听不到了,在打印的时候调用了alert方法查看打印的html内容,发现原来的script部分本来是写在</body>标签后面的,结果变成了</body>标签之前了,这个问题其实展示的就是打印的时候我们把html内容重置了一遍,但是页面没有刷新,导致监听丢失了,所以我们需要做的就是,重新给input框和textarea框设置监听即可。下面按着例子解说一下如何操作(用的是spring-boot+maven项目)。

1、在一个html页面写入一个iframe和一个打印按钮,在该iframe嵌入一个html页面,效果如下图:

body部分代码:/test就是你嵌入的html的路径

<div style = "margin-top: 50px; margin-left: 50px; margin-buttom:20px">
<br></br>
<input id = "button4" type="button" value="点击iframe测试打印"  onClick = "testPrint()"></input>
<br></br>
<iframe id ="testIframe" style="text-align:center;margin-left: 10px;margin-top:10px" src = "/test" width='700' height='600'></iframe>
</div>

script部分代码:

function testPrint(){
	var htDoc = document.getElementById('testIframe').contentWindow.document;
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值