我目前有一个表单预览,它看起来完全符合我们希望它查找正在查看的列表项的方式,但问题是当我在 FOrm Display 中将我的打印按钮添加为 CEWP 时,它执行的功能与使用 Control P 完全相同并打印整个页面。请参阅代码。
<div style="text-align: center"><input onclick="window.print();return false;" type="button" value=" Print this page "/> </div>"
我想添加它,让它只打印表单,而不打印窗口中当前视图的其他内容,并实际填写 8.5 x 11。
有什么想法吗?
受此 InfoPath 打印按钮的启发,一种解决方案是获取 CEWP 的内容并创建一个仅包含这些内容的新窗口。
var patt = /**your CEWP ID here***/g;
var alldivs = document.getElementsByTagName('div');
var printpageHTML = '';
for(var i=0; i<alldivs.length; i++){
if(patt.test(alldivs[i].id)){
printpageHTML = '<HTML><HEAD>n' +
document.getElementsByTagName('HEAD')[0].innerHTML +
'</HEAD>n<BODY>n' +
alldivs[i].innerHTML.replace('inline-block','block') +
'n</BODY></HTML>';
break;
}
}
var printWindow = window.open('','printWindow');
printWindow.document.open();
printWindow.document.write(printpageHTML);
printWindow.document.close();
printWindow.print();
printWindow.close();
修复:删除了 HTML 字符的转义。
简单的打印功能:
<input id="printpagebutton" type="button" value="Print this page" onclick="printpage()"/>
<script type="text/javascript">
function printpage() {
//Get the print button and put it into a variable
var printButton = document.getElementById("printpagebutton");
//Set the print button visibility to 'hidden'
printButton.style.visibility = 'hidden';
//Print the page content
window.print()
//Set the print button to 'visible' again
//[Delete this line if you want it to stay hidden after printing]
printButton.style.visibility = 'visible';
}
</script>