日期:2014-05-17  浏览次数:20904 次

js实现打印的问题。
我用js实现打印的时候,页面没有打印完全,请高手们指点一下,不胜感激~
我先描述一下具体出现的问题:
在a.jsp页面中有个iframe指向b.jsp
在a页面中点击打印的时,触发js
function OnPrint(oper) {
document.frames.iframe_detail.doPrint(oper);
}
在b页面中的js控制如下:
JScript code

function doPrint(oper){
if (oper<10)
{ 
bdhtml=window.document.body.innerHTML;//获取当前页的html代码
//alert("1="+bdhtml)
sprnstr="<!--startprint"+oper+"-->";//设置打印开始区域
eprnstr="<!--endprint"+oper+"-->";//设置打印结束区域
prnhtml=bdhtml.substring(bdhtml.indexOf(sprnstr)+18); //从开始代码向后取html
//alert("2="+prnhtml);
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));//从结束代码向前取html
window.document.body.innerHTML=prnhtml;
window.print();
window.document.body.innerHTML=bdhtml;
} else {
window.print();
}
}


在b页面中用<!--startprint1-->中间是一个table<!--endprint1-->来划定范围
问题时,b页面中的table有导航条,在页面上不能完全显示,需要拖动导航条才能完全看到表中的详细信息,结果打印时只打印了页面上直接显示的那部分,另外一部分没有打印。
请大侠们帮帮忙,我的需求是全部都要打印,一旦解决立马结贴


------解决方案--------------------
不好意思楼主我也不会,不过window.print();应该放在最后的
------解决方案--------------------
同意上面的说法。
------解决方案--------------------
以前做页面打印的时候,都是直接调用做的两个iframe,下面的整个页面都是要打印的内容,就没有存在这种问题,直接先focus(),然后再print()!!这也学习下