有一段打印弹出页代码,如不打印弹出页而改为打印当前页,此代码怎么改?

epoecq 2013-04-02 04:27:26
function cereateDiv(){
var url = '';
var div = document.createElement('div');
var cw = Math.max(document.body.clientWidth , document.documentElement.clientWidth);
var ch = Math.max(document.body.clientHeight , document.documentElement.clientHeight);
div.style.position = 'absolute';
div.style.width = '300px';
div.style.height = '200px';
div.style.border = '1px solid #000';
div.style.top = ch/2 - 100+'px';
div.style.left = cw/2 - 150+'px';
div.style.zIndex = 99;
document.body.appendChild(div);
var cover = div.cloneNode();
cover.style.width = cw + 'px';
cover.style.height = ch + 'px';
cover.style.border = 'none';
cover.style.background = '#ddd';
cover.style.top = '0px';
cover.style.left = '0px';
cover.style.position = 'absolute';
cover.style.zIndex = 98;
document.body.appendChild(cover);
cover.style.opacity = 0.8
cover.style.filter = 'alpha:(opacity=80)';
div.innerHTML = '<div class="info">确定打印?</div><div class="buttons"><input type="button" id="confirm" value="打印"/> <input type="button" id="cancel" value="取消打印"/></div>'
document.getElementById('confirm').onclick = function(){
var target = window.open(url );
target.print();//这里不知道能不能打印成功,如果新打开的页面是自己可以控制的话,建议打印代码放在这个页面里
document.body.removeChild(cover);
document.body.removeChild(div);
}
document.getElementById('cancel').onclick = function(){
document.body.removeChild(cover);
document.body.removeChild(div);
}
}
...全文
353 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
epoecq 2013-04-02
  • 打赏
  • 举报
回复
其实呢,原先因用两段带window.onload 的JS代码导致其中一个失效而把其中之一单独放到另一网页上,用IPRAME 调用的方式解决了问题,但用您那弹出窗体代码后就出现弹出窗体与已打开的页面无法协调问题,不得不重新考虑把两段代码放到同一页面上,用兼容代码解除冲突。解决问题后就不需要弹出窗了。但网上找了很多代码,想去掉弹出窗(不打印)都不行。我是一个编程莱鸟,自己编不出更好的办法,只好网上找高手求助。你的编程功底非常好,值得我学习。
epoecq 2013-04-02
  • 打赏
  • 举报
回复
问题已解决,谢谢。
functionsub 2013-04-02
  • 打赏
  • 举报
回复

document.getElementById('confirm').onclick = function(){
    document.body.removeChild(cover);         
    document.body.removeChild(div); //先去掉弹出框跟蒙版层
    url=='' && window.open(url);//你不给url赋值一个弹出的新页面的URL的么??
    window.print();//改这里。            
}    
这样肯定没问题啊,
epoecq 2013-04-02
  • 打赏
  • 举报
回复
又试了多次,还是不行,请用去除后的代码表示一下,我在网上找了多种去除方式,就是去不掉。
functionsub 2013-04-02
  • 打赏
  • 举报
回复

document.getElementById('confirm').onclick = function(){              
var target = window.open(url );         
window.print();//改这里。        
document.body.removeChild(cover);         
document.body.removeChild(div);     
}     
functionsub 2013-04-02
  • 打赏
  • 举报
回复
document.getElementById('confirm').onclick = function(){ document.body.removeChild(cover); document.body.removeChild(div); //先去掉弹出框跟蒙版层 url=='' && window.open(url);//你不给url赋值一个弹出的新页面的URL的么?? window.print();//改这里。 }
epoecq 2013-04-02
  • 打赏
  • 举报
回复
可编写成不弹出提示框,点击“加”按钮后直接由默认打印机打印。这样可消除提示框。
epoecq 2013-04-02
  • 打赏
  • 举报
回复
打印成功了,不过,打印时那个打印提示框也打出来了,提示框不需要打印,怎么消除它?
functionsub 2013-04-02
  • 打赏
  • 举报
回复

document.getElementById('confirm').onclick = function(){              
    url=='' && window.open(url);//你不给url赋值一个弹出的新页面的URL的么??
    window.print();//改这里。        
    document.body.removeChild(cover);         
    document.body.removeChild(div);     
}    
epoecq 2013-04-02
  • 打赏
  • 举报
回复
我试过,不成功,因为当前页是指已打开并修改内容了的页面,不是要重新打开。在你指定的位置插入页面地址(index.html————与当前页在本地同一文件夹中)后,弹出的不是打印选项卡,而是文件所在的文件夹。等于是要重新手动打开页面,打开修改后,再打印,那又会弹出文件夹,永远也打印不了。正确的动作是,当点击编号前的“加”按钮时将弹出打印提示框,当点击框上的“打印”按钮时就直接弹出打印选项卡,在选项卡上选择打印机后并点击“确定”按钮后打印机即打印出当前页。也可编写成当点击“打印”按钮后,不弹出打印选取项卡,而是直接让默认打印机动作,直接打印出当前页。

87,991

社区成员

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

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