即使客戶端使用瀏覽器的打印菜單項,我發現了一種只打印IFrame內容的方法,但我不能告訴你爲什麼。訣竅是在打印之前將焦點設置爲IFrame。打印樣式表也是必需的,儘管javascript似乎是用戶從菜單打印時發生的情況。你需要兩部分才能工作。它打印整個文檔,即使它大於IFrame!我已經在IE8,Firefox 5和6以及Safari 3.2中成功測試過它。
我使用這個腳本的處理程序onclick事件的按鈕或「打印我」鏈接:
<script type="text/javascript" language=JavaScript>
function CheckIsIE()
{
if (navigator.appName.toUpperCase() == 'MICROSOFT INTERNET EXPLORER')
{ return true; }
else
{ return false; }
}
function PrintThisPage()
{
if (CheckIsIE() == true)
{
document.content.focus();
document.content.print();
}
else
{
window.frames['content'].focus();
window.frames['content'].print();
}
}
</script>
iframe的問題被命名id'd內容。我的按鈕位於名爲print_iframe的div中瀏覽器嗅探非常重要! 然後我用的打印樣式表只有這樣掛在:
<link href="/styles/print.css" rel="stylesheet" type="text/css" media="print" />
@charset "utf-8";
/* CSS Document */
body { background:none; }
#left { display:none; }
#main img { display:none; }
#banner
{
display:none;
margin-top:0px;
padding:0px;
}
#main
{
margin-top:0px;
padding:0px;
}
#print_iframe
{
display:none;
}
在我得出的結論是,iframe的是更多的麻煩比它的價值到底。我在div模式下使用colorbox,並在正在提取的頁面中添加一些邏輯,以確定它是應該呈現整個HTML頁面還是僅顯示我感興趣的數據。使用div來打印頁面樣式的問題遠沒有問題比使用iframe – GordonM 2010-11-05 12:59:41
[從父窗口打印動態創建的iframe的內容]的可能副本(http://stackoverflow.com/questions/831147/printing-contents-of-a-dynamically-created-iframe-from-parent -window) – 2017-03-10 01:15:38