Javascript Google Chrome扩展:无法启动打印对话框
我想在我的谷歌浏览器扩展中点击按钮启动打印对话框。当扩展名的html文件作为独立文件打开时,代码似乎正常工作,但当它作为扩展名加载时,代码似乎不正常工作 HTML:Javascript Google Chrome扩展:无法启动打印对话框,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我想在我的谷歌浏览器扩展中点击按钮启动打印对话框。当扩展名的html文件作为独立文件打开时,代码似乎正常工作,但当它作为扩展名加载时,代码似乎不正常工作 HTML: JavaScript:函数print_p(){window.print();} 有什么问题吗?除了我提到的重复的内联JavaScript问题之外,似乎不可能从弹出窗口(或背景页面)调用打印对话框 一种解决方法是在扩展中有一个“打印助手”页面,该页面在普通选项卡中打开,并可以打开打印对话框 一种可能的架构: 单击弹出窗口,要打印的
JavaScript:函数print_p(){window.print();}
有什么问题吗?除了我提到的重复的内联JavaScript问题之外,似乎不可能从弹出窗口(或背景页面)调用打印对话框 一种解决方法是在扩展中有一个“打印助手”页面,该页面在普通选项卡中打开,并可以打开打印对话框 一种可能的架构:
function printClick(){
chrome.runtime.sendMessage({ print: true, data: whateverYouWantToPrint });
}
它是通过后台页面发送的,因此您不必担心弹出窗口关闭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") }
);
}
// ...
});
print.js
请求数据,根据需要对其进行格式化,并调用打印对话框:
chrome.runtime.sendMessage({ getPrintData: true }, function(response){
formatDataIntoPage(response.data);
window.print();
});
chrome.runtime.onMessage.addListener( function(request, sender, sendResponse){
// ...
if(request.getPrintData) {
sendResponse({ data: printData });
}
});
@Xan的可能复制品:我已经试过了,但结果对我没有帮助。我还尝试了一种不同的方法,它同样适用于独立的html文件,而不是扩展名。下面是HTML:JS:function print_p(){window.print();}$(“#print_page”)。单击(function(){print_p();});你应该编辑你的问题,而不是评论;此外,内联代码用倒钩分隔,`。您的jQuery尝试仍然是错误的,除非您将其包装在
$(document.ready({/*…*/})中代码>@Xan:我会记住的。谢谢你的努力。但我也试过了。我开始怀疑chrome中的扩展是否不允许打印对话框访问。我刚刚测试了它,但它在弹出窗口中不起作用。在其他扩展页面上,它可以工作。那是你的案子吗?