簡體   English   中英

Google Chrome擴展程序:無法啟動“打印”對話框

[英]Google Chrome Extension: Cannot launch Print dialog

我想在我的Google chrome擴展程序中單擊按鈕后啟動“打印”對話框。 當擴展程序的html文件作為獨立文件打開時,該代碼似乎有效,但當作為擴展程序加載時卻無效。

HTML: <input id="print_page" type="button" value="Print" onclick="print_p()" />

JavaScript: function print_p(){ window.print();}

有什么問題的主意嗎?

除了我提到的內聯JavaScript問題外,似乎不可能從彈出窗口(或背景頁面)調用打印對話框

一種解決方法是在擴展程序中具有一個“打印幫助程序”頁面,該頁面在常規選項卡中打開並可以打開一個打印對話框。

可能的架構:

  1. 在彈出窗口中單擊,將要打印的數據發送到后台頁面:

     function printClick(){ chrome.runtime.sendMessage({ print: true, data: whateverYouWantToPrint }); } 

    它通過后台頁面路由,因此您不必擔心彈出窗口關閉。

  2. 在后台頁面中,將打開一個幫助頁面:

     var printData; chrome.runtime.onMessage.addListener( function(request, sender, sendResponse){ if(request.print) { printData = request.data; chrome.tabs.create( { url: chrome.runtime.getURL("print.html") } ); } // ... }); 
  3. 在打印幫助器頁面中,腳本print.js請求數據,根據需要設置其格式並調用打印對話框:

     chrome.runtime.sendMessage({ getPrintData: true }, function(response){ formatDataIntoPage(response.data); window.print(); }); 
  4. 返回后台頁面,根據打印助手的要求提供數據:

     chrome.runtime.onMessage.addListener( function(request, sender, sendResponse){ // ... if(request.getPrintData) { sendResponse({ data: printData }); } }); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM