JS新手~请指教我写了一个在线流程图的编辑网页,流程图画完后,使用window.print(),将选定区域打印出来。
但是执行打印后,网页就不能任何操作了,任何的动作都不能完成。以下是我的程序,请问会是什么问题呢?function functionPrint(){
$("#printPDF").click(function(){
bdhtml = window.document.body.innerHTML;
sprnstr = "<!--startprint-->";
eprnstr = "<!--endprint-->";
prnhtml = bdhtml.substr(bdhtml.indexOf(sprnstr)+17);
prnhtml = prnhtml.substring(0, prnhtml.indexOf(eprnstr));
window.document.body.innerHTML = prnhtml;
window.print();
window.document.body.innerHTML = bdhtml;
return 0 ;
})
};
addLoadEvent(functionPrint); //这是把functionPrint()函数添加到window.onload()事件中。其中"<!--startprint-->"和"<!--endprint-->"我添加到了要打印部分的开头和结束了。

解决方案 »

  1.   

    我刚试了一下,单纯的Html/css页面用这个没有问题,但是如果js文件对标签执行各种事件的话,就会出现不能操作问题。
    个人感觉是网页内容重新赋值自后js事件绑定无效了
      

  2.   

    那是因为你用新的用于打印的html替换了旧的编辑页面,导致旧的页面功能失效
    window.document.body.innerHTML= prnhtml
    你这个做法是不对的,
    参考我的方法吧:js打印页面区域的应用方法
      

  3.   

    问题解决了吗?我也是遇到用window.print(),打印完之后,页面不能操作的问题,如果解决了,楼主告诉下,谢谢!
      

  4.   

    window.print()之后,用window.location.reload()重新加载一下页面就好了.