在包含多个Iframe的页面中分别打印每个iFrame里的src的页面

cql0007 2003-06-21 11:33:23
我有一个print.asp页面,里面分别包含1.asp,2.asp,3.asp.... 的iframe
<iframe id=ifrm height="100%" width="100%" style="display:block" src="1.asp" scrolling="no" frameborder="no" framespacing="0" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<% if two = true then %>
<iframe id=ifrm2 height="100%" width="100%" style="display:block" src="2.asp" scrolling="no" frameborder="no" framespacing="0" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<% end if %>
<% if three = true then %>
<iframe id=ifrm3 height="100%" width="100%" style="display:block" src="3.asp" scrolling="no" frameborder="no" framespacing="0" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<% end if %>

面1.asp,2.asp,3.asp文档的内容是空的.在print.asp里面这样动态写进内容到那几个文档中去:
<script>
document.frames("ifrm").document.all.tab.innerHTML=document.all.tab1.outerHTML;
<% if two = true then %>
document.frames("ifrm2").document.all.tab.innerHTML=document.all.tab2.outerHTML;
<% end if %>
<% if three = true then %>
document.frames("ifrm3").document.all.tab.innerHTML=document.all.tab3.outerHTML;
<% end if %>
</script>
也就是说在print.asp中,分别将tab1,tab2,tab3的内容写进1.asp,2.asp,3.asp中去。在print.asp中,tab1,tab2,tab3是隐藏的,该页就只可以看1.asp,2.asp的内容了。生成后,每个表格都很大的,高度有的不止一张纸打得下的。
现在的问题是:如果我是单独的打印每个1.asp或2.asp,则打印的时候,一张纸的高度打不下的表格内容,会自动打到第二张纸去,但如果我是整个print.asp文档按打印的话,在1.asp或2.asp中的表格里面比一张纸高的部分就不会接着打第二纸了,例如说:第一张纸打印的是1.asp中的表格,但那个表格比纸高,没打完,它不会自动打到第二张纸去,它的第二张纸打印的是2.asp内的表格。这样就打丢了很多东西了,请问这个问题该如何解决?
谢谢!
...全文
442 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
cql0007 2003-07-14
  • 打赏
  • 举报
回复
多谢各位,最后我还是让它多出几个对话框了,而且竖着的分页的,为了避免一行字分成两页打,我又还是进行了人工判断,让最后一行记录高一点,:),没办法,先就这样解决了吧.
cql0007 2003-07-10
  • 打赏
  • 举报
回复
另外:如果1.asp里的表格很高时,打印的时候系统会自动给它分页,第一页打不完的会自动打印到第二页去,但有这种情况可能第一页和第二页分的地方正好把一个表格行从中断开,也有可以把文字从中断开,请问有没办法让系统自动去制止这种情况的发生.我不想用人工去判断一页纸的高度,再决定打印多少行记录,我本来把表格的左右页分开就是用人工判断的,这样太麻烦了,能不能在CSS里有什么控制可以让它自动识别不断开我的行或者字了?

谢谢了.
cql0007 2003-07-10
  • 打赏
  • 举报
回复
非常感谢 flyycyu(fly)兄,唉,没想到这东东会这么麻烦。那就先让它多出几个对话框吧,先交了差吧,郁闷!
cql0007 2003-07-10
  • 打赏
  • 举报
回复
非常感谢 flyycyu(fly)兄,唉,没想到这东东会这么麻烦。那就先让它多出几个对话框吧,先交了差吧,郁闷!
flyycyu 2003-07-10
  • 打赏
  • 举报
回复
我查了msdn!
execCommand("Print", false)
只能帮你把每个iframe中的内容打出来
而不能帮你禁止dialog的出现!

dreamfly8848 2003-07-10
  • 打赏
  • 举报
回复
关注。
hillhero789 2003-07-09
  • 打赏
  • 举报
回复

see
学到东西了
呵呵
cql0007 2003-07-09
  • 打赏
  • 举报
回复
再次感谢flyycyu(fly) ,可我用了iframename.document.execCommand("Print", false);后,那个鬼打印对话框还是出来啊,老大再帮帮忙吧
flyycyu 2003-07-09
  • 打赏
  • 举报
回复
如果不出现对话框,你可以把true改为false
iframename.document.execCommand("Print", false);
flyycyu 2003-07-09
  • 打赏
  • 举报
回复
不知道微软是怎么想的,不管你调用
哪个iframe的window.print
它还是把所有页面打出来,好在
在IE5以后HTML EDIT API中微软
增加了一个新的打印办法,
你可以用iframename.document.execCommand("Print", true);
来实现你的要求!
cql0007 2003-07-08
  • 打赏
  • 举报
回复
各位高手帮帮忙啊
cql0007 2003-07-07
  • 打赏
  • 举报
回复
今天才能用打印机试了,用了hillhero789(丘)的方法还是不行啊,用那个方法就相当于直接在那个大的WEB页面调用它的window.print()了,一个IFRAME里高度超过一页内容的东东它就把它丢掉不打了啊
cql0007 2003-07-03
  • 打赏
  • 举报
回复
OK,多谢楼上老兄,我先试试看.
hillhero789 2003-07-03
  • 打赏
  • 举报
回复
可以利用onafterprint事件
就是一个完了以后就立即调用另一个

try:

var printOrder=0;
function window.onafterprint()
{
printOrder++;
if(printOrder<document.frames.length)
printAllFrames(printOrder);
}
function printAllFrames(order)
{
document.frames[order].print();

}

<a href=# onclick="printAllFrames(printOrder)">打印所有frame</a>
以上的代码我没有试过,因为我没有打印机,大概意思就这样
BigTreeForShadow 2003-07-03
  • 打赏
  • 举报
回复
关注中
wufanglu 2003-07-03
  • 打赏
  • 举报
回复
好问题,关注,希望找到好的答案。
imafool 2003-07-03
  • 打赏
  • 举报
回复
m
cql0007 2003-07-03
  • 打赏
  • 举报
回复
用了hillhero789(丘)的方法后,的确只出了一个打印对话框,可......今天打印机坏了,我也没法实验了
cql0007 2003-07-01
  • 打赏
  • 举报
回复
现在我在包含IFRAME的大的WEB页面中,如果分别调用每个FRAME的打印:
document.frames("ifrm1").window.print()
document.frames("ifrm2").window.print()
document.frames("ifrm3").window.print()

那我的屏幕上就会出现3个打印的对话框,这个问题怎么解决啊,我只能让他出一次对话框啊.
cql0007 2003-06-30
  • 打赏
  • 举报
回复
我如果在每个FRAME里面都分别调用:window.print()的话,那如果我的页面出来有四页,就会弹出四个打印对话框,用户要点四次了,这样不方便啊,请问有什么别的方法没有?
加载更多回复(2)

87,987

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧