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);     
}     

解决方案 »

  1.   


    document.getElementById('confirm').onclick = function(){              
    var target = window.open(url );         
    window.print();//改这里。        
    document.body.removeChild(cover);         
    document.body.removeChild(div);     
    }     
      

  2.   

    我试过,不成功,因为当前页是指已打开并修改内容了的页面,不是要重新打开。在你指定的位置插入页面地址(index.html————与当前页在本地同一文件夹中)后,弹出的不是打印选项卡,而是文件所在的文件夹。等于是要重新手动打开页面,打开修改后,再打印,那又会弹出文件夹,永远也打印不了。正确的动作是,当点击编号前的“加”按钮时将弹出打印提示框,当点击框上的“打印”按钮时就直接弹出打印选项卡,在选项卡上选择打印机后并点击“确定”按钮后打印机即打印出当前页。也可编写成当点击“打印”按钮后,不弹出打印选取项卡,而是直接让默认打印机动作,直接打印出当前页。
      

  3.   


    document.getElementById('confirm').onclick = function(){              
        url=='' && window.open(url);//你不给url赋值一个弹出的新页面的URL的么??
        window.print();//改这里。        
        document.body.removeChild(cover);         
        document.body.removeChild(div);     
    }    
      

  4.   

    document.getElementById('confirm').onclick = function(){
        document.body.removeChild(cover);         
        document.body.removeChild(div); //先去掉弹出框跟蒙版层
        url=='' && window.open(url);//你不给url赋值一个弹出的新页面的URL的么??
        window.print();//改这里。            
    }   
      

  5.   


    document.getElementById('confirm').onclick = function(){
        document.body.removeChild(cover);         
        document.body.removeChild(div); //先去掉弹出框跟蒙版层
        url=='' && window.open(url);//你不给url赋值一个弹出的新页面的URL的么??
        window.print();//改这里。            
    }    这样肯定没问题啊,
      

  6.   

    其实呢,原先因用两段带window.onload 的JS代码导致其中一个失效而把其中之一单独放到另一网页上,用IPRAME 调用的方式解决了问题,但用您那弹出窗体代码后就出现弹出窗体与已打开的页面无法协调问题,不得不重新考虑把两段代码放到同一页面上,用兼容代码解除冲突。解决问题后就不需要弹出窗了。但网上找了很多代码,想去掉弹出窗(不打印)都不行。我是一个编程莱鸟,自己编不出更好的办法,只好网上找高手求助。你的编程功底非常好,值得我学习。