2012-02-27 48 views
-1

這是一個奇怪的。我正在嘗試以下。加載維基百科頁面並在本地打印

我有一個本地HTML和JavaScript文件,它會生成一個隨機的Wikipedia頁面。當我獲取隨機Wikipedia頁面的URL時,我想將它發送給打印機。但是,Chrome和Firefox似乎都有這個問題。因爲我在本地運行的東西

Permission denied to access property 'print' </br> 
[Break On This Error] </br> 
infoWindow.print(); 

你覺得這可能是一個:

在Chrome中我得到一個錯誤:

Unsafe JavaScript attempt to access frame with URL https://secure.wikimedia.org/wikipedia/en/w/index.php?title=Popran_National%20Park&printable=yes from frame with URL my local 
file. Domains, protocols and ports must match. </br> 
gol.js:99Uncaught TypeError: Object [object DOMWindow] has no method 'print' 

在Firefox?

我產卵的新窗口代碼:

var printURL = "https://secure.wikimedia.org/wikipedia/en/w/index.php?" 
infoWindow = window.open(printURL,'wiki'); 
setTimeout ("printWin()", 2000); 

其中printWin()是:

function printWin(){ 
    infoWindow.print(); 
    infoWindow.close(); 
} 
+0

網站不能在另一個網站上執行任何操作;它被稱爲相同的原產地政策。 – pimvdb 2012-02-27 22:31:16

回答

0

這是你正在運行到安全策略的東西。請閱讀thisthis

您需要做的是通過服務器運行Wiki頁面的GET請求。所以服務器充當代理。瀏覽器將允許這樣做,因爲從角度來看,內容與您的託管頁面來源相同。

您可能會斷鏈。你可能不得不想辦法代理所有這些 - 或者重寫HTML。如果你這樣做了,現在你正在進入版權領域,而我不確定什麼是這樣的。

您是否允許通過服務器代理維基百科內容,從而掩蓋其來源?也許你只要不改變內容。但是,如果您調整HTML以使其看起來像它的外觀,那麼你是一個壞男孩還是一個好孩子?我完全不知道這件事。

我想我回答了你的技術問題。

+0

嘿那裏謝謝1461我會看看你發送的鏈接。關於合法性,我認爲它應該沒問題,因爲我沒有改變內容。將閱讀更多的一些:) – 2012-02-28 19:28:10