2011-08-22 120 views
2

確定打印網頁,讓使用情況如下:我得到「訪問被拒絕」當我嘗試使用jquery.PrintElement.js

我有打開的當前頁面使用jQuery打印按鈕打印插件。

$("#Section1").printElement({ 
     leaveOpen: true, 
     printMode: 'popup', 
     pageTitle: '<%=Resources.Reporting.Text_Title%>' 
    }); 

結果是我所期望的。顯示打印預覽窗口和打印設置對話框。

如果我點擊一個更多的時間和打印預覽頁面最小化,我收到「訪問被拒絕」指着JQuery.printElement.js JS錯誤。

如果不是最小化,它只是打開與以前相同的打印預覽彈出窗口。

這就是IE的行爲。在Firefox中,瀏覽器發出「不可用」警報。

這是我能解決的問題嗎?

從我到目前爲止搜索這個「訪問被拒絕錯誤」鏈接到 從不同的域」

+0

什麼是JQuery.printElement.js? – epascarello

+0

對於您正在嘗試打印的元素,有沒有什麼不尋常的事情,比如它在iframe中?或者它只是一個普通的分區?似乎有很多人發現這個圖書館的小錯誤。如果你在這裏沒有運氣,我會建議去[這裏](https://github.com/erikzaadi/jQueryPlugins/issues?labels=printElement)並打開一個問題。 –

+0

嘗試將printElement升級到[更新版本](https://github.com/Akkuma/jQueryPlugins/blob/master/jQuery.printElement/jquery.printElement.js)。另外,我建議使用'printMode:iframe'。 –

回答

1

感謝名單Blowsie使一個子域的呼叫,可能會給一個去。

問題出在這樣的事實,即打印插件試圖打開一個新窗口,每次按下打印頁面按鈕時都會打開一個名稱相同的新窗口,我改變它以便每次使用新的唯一名稱時打印預覽頁面打開。

if (opts["printMode"].toLowerCase() == 'popup') { 
     popupOrIframe = window.open('about:blank', 'printElementWindow', 'width=650,height=440,scrollbars=yes'); 
     documentToWriteTo = popupOrIframe.document; 
    } 

發送至:

var windowName = "printElementWindow"; 
    windowName = windowName + (Math.round(Math.random() * 99999)).toString(); 
    if (opts["printMode"].toLowerCase() == 'popup') { 
     popupOrIframe = window.open('about:blank', windowName, 'width=650,height=440,scrollbars=yes'); 
     documentToWriteTo = popupOrIframe.document; 
    } 
相關問題