最近在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;