我使用的代碼來自this答案直接從打印按鈕打印單獨的頁面。用戶單擊打印按鈕並將URL發送到打印功能。打印功能將單獨頁面加載到iframe的display:none
中,並打印該iframe onLoad
。它適用於IE瀏覽器,但不支持Firefox。在Firefox中,它將頁面加載到div中,但從不打印或打開打印對話框。事實證明,如果它被設置爲display:none
如下Firefox將不打印的iframe:Firefox將不打印iframe樣式的顯示:無
<div id="printerDiv" style="display:none"></div>
這是預期的行爲?所有其他瀏覽器打印,我想在Bugzilla發佈。我嘗試了一些CSS「技巧」,使div不顯示用戶可以看到它的位置,但它總是以某種方式顯示。我目前使用下面的CSS,使無形的iframe:
#printerDiv iframe{
width:1px !important;
height:1px !important;
border:0 !important;
margin:0 !important;
}
但它的利潤率依然存在,一旦產生IFRAME留下14px的差距。 是否有某種方法可以使iframe不可見在所有沒有display:none
屬性?更好的是,有沒有辦法做到這一點,而不是像這樣的黑客?
我甚至嘗試過使用CSS設置iframe爲display:block
@print media types和display:none
作爲屏幕,JS功能仍然不會打印。
這可能是因爲該URL位於不同的域上。 –
事實並非如此,事實上我正在傳遞一個相對鏈接。我嘗試了一個絕對的鏈接,但它得到了同樣的問題。 –
只是絕對的位置iframe離開頁面.. – GAgnew