2017-06-14 253 views
21

道歉爲略含糊的問題,但我拉我的頭髮。自從這次更新以來,我們已經通過我們的網絡應用打印了很多電話。我們的網絡應用程序使用iframe,我們使用css @media print來隱藏除此iframe外的所有內容以用於打印目的。自更新以來,用戶收到錯誤404 - 找不到實際頁面。從網絡跟蹤看來,IE在D3CD911.htm等本地目錄中創建臨時.htm文件,然後下載css/js資源,最後它會調用/D3CD911.htm。這是打電話給www.mywebsite.co.uk/D3CD911.htm。這顯然不存在於網站上,所以404被返回。 我努力尋找問題的模式,它似乎並沒有影響其他公共網站。我認爲問題在於window.print()方法。我可以在這裏複製它在https://www.primefaces.org/showcase/ui/misc/printer.xhtml。如果你點擊打印按鈕,你會得到錯誤。雖然這是使用jqprint javascript函數,但如果使用瀏覽器打印按鈕,它也會失敗。IE11 Windows 7打印問題後kb4021558

任何指導將不勝感激。

回答

8

更新: 微軟已經發布了一個補丁:Microsoft IE patch

只是想總結一下,我發現已經張貼在這裏的解決方法。

1)如果你使用的是自己的打印按鈕改變使用document.execCommand('print', false, null);。測試支持使用document.queryCommandSupported('print'),如果不支持,請撥window.print()(Prob只是Firefox)

2)使用打印預覽。另外選擇要打印的部分頁面,右鍵單擊並選擇打印預覽。然後選擇As selected on screen

3)使用Chrome等

4其他瀏覽器)卸載更新

5)等待微軟修復。他們的KB頁面KB Link已更新爲已知問題。因此,您假設正在修復。

+0

您是否知道Windows 10是否有補丁程序? – Bobcat88

+0

不確定。在另一個論壇上看到有人在本月底之前說過。 – andyfinch

+1

注意:雖然 – AngryCarrotTop

7

andyfinch的解決辦法也爲我們工作。謝謝安迪!

MS已標記此問題與「不會修復」(6/15/17):https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12349663/更新:該標誌可能只是表明它不是MS邊緣的問題,因此它不會被邊緣修復開發人員。

安裝KB4021558休息從我們的網站打印(頁是空白的,頁腳顯示「RES://ieframe.dll/i273gyew.htm」的一些變體)。卸載它將恢復打印功能。

KB4021558中還包括KB4022719,KB4022725和KB4022727。

+4

「邊緣」團隊發佈了「無修正」,但實際的MS KB有一個已知的錯誤部分確認(沒有解決方法):https://support.microsoft.com/en-us/help/4021558/cumulative -security-update-for-internet-explorer-june-13-2017 – AngryCarrotTop

2

我找到了一個解決辦法:如果你要打印的IFRAME可見,右擊它並選擇打印預覽...而不是打印...從上下文菜單中。預覽似乎是可打印的(但可能只顯示部分框架內容)。

而且,對於該記錄的有問題的64位的Win7更新KB4022719。

+6

是的,我也找到了。另外我覺得問題可能與'window.print()'有關。這與點擊打印按鈕有相同的問題,但是如果我運行'document.execCommand('print',false,null)'我認爲它可以工作。將在早上正確測試。 – andyfinch

+0

@andyfinch,您的解決方案正在爲IE11工作。太糟糕了,我需要支持多瀏覽器。無論如何感謝您的解決方法。 – Chin

+2

您可以使用'document.queryCommandSupported('print')'測試支持。如果不支持,只需運行普通的'window.print()' – andyfinch

13

andyfinch,你是個天才!下面的代碼顯示爲包含在框架內的打印按鈕的工作:

function Print() { 
    if (document.queryCommandSupported('print')) { 
    document.execCommand('print', false, null); 
    } 
    else { 
    window.parent.<framename>.focus(); 
    window.print(); 
    } 
} 
+0

這隻會爲我打印一個iframe的小部分。複製並粘貼到單獨的文檔是目前唯一的解決方法。 – AngryCarrotTop

1

繼承人我在IE 11在使用此解決方法:

  1. 右鍵單擊框,然後選擇全選,或[ctrl + A]
  2. 右鍵單擊並選擇打印預覽
  3. 預覽中應該有一個選項,用於「在屏幕上選擇」。選擇此項允許我在框架中打印所有內容。
0

我們在打印屏幕上有多個框架,並且調用document.execCommand('print', false, null);無法解決我們的問題。相反window.parent[frameName].document.execCommand('print', false, null);修復了它。

+1

是的'文件'必須引用特定的DOM'文件' – andyfinch

2

MS發佈的更新昨日(6月27日),解決它適用於Windows 10:

此非安全更新包括質量的改善。此更新中未引入新的 操作系統功能。主要 變化包括:

•談到了KB4022715引入了一個問題,即從框架的Internet Explorer 和Microsoft邊打印可能會導致404找不到 或打印空白頁。

鏈接:

的Windows 10(初始版本 - 建立10240)

KB4032695 - Build 10240.17446

的Windows 10版本1511(初始版本 - 建立10586)

KB4032693- Build 10586.965

的Windows 10版本1607(初始版本 - 建立14393)

KB4022723 - Build 14393.1378

的Windows 10版本1703(初始版本 - 建立15063)

KB4022716 - Build 15063.447

Source/More info

我抓起他們從今天的Windows Update Catalog,與WSUS一起使用。