因此,昨天我得到了Firefox 56(Ubuntu Gnome),並開始嘗試使用tabs.saveAsPDF()函數(Firefox 56+)。所以他們在site上顯示的例子是用於後臺腳本。但是我想只在按下按鈕時觸發它。所以我做了一個按鈕,並在.js
文件(一個彈出窗口)中編寫了這個代碼。tabs.saveAsPDF()不工作(Firefox Web-ext)
var savepdf = document.querySelector('.savePDF');
savepdf.addEventListener('click', saveaspdf);
function saveaspdf(){
console.log('Inside saveaspdf'); //for checking
browser.tabs.saveAsPDF({footerCenter:"hello",footerLeft:"2",footerRight:"4/10/2017",headerCenter:"Mera Baba",headerLeft:"Baba",headerRight:"Baba",marginBottom:0.5,marginLeft:0.5,marginRight:0.5,marginTop:0.5,orientation:0,paperHeight:11.0,paperSizeUnit:0,paperWidth:8.5,scaling:1,showBackgroundColors:false,showBackgroundImages:false,shrinkToFit:true})
.then((status) => {
console.log(status);
});
}
當我點擊按鈕,將其保存爲PDF的窗口出現(比如我選擇桌面),然後我點擊保存。沒有任何反應(下載插件也不會變成藍色),並且損壞的pdf文件保存到我的桌面。控制檯看起來是這樣的:
所以,它會在函數內部後來(我沒有太多的想法)「無法發送函數調用的結果......」發生。請幫我解決這個問題。
這是我manifest.json
文件:
"permissions": [
"storage",
"<all_urls>",
"tabs",
"activeTab"
],
"browser_action": {
"default_icon": "icons/pdf.ico",
"default_title": "My pdf",
"default_popup": "popup/addsite.html"
}
編輯: -
我做了一個非常簡單的擴展僅由background.js
文件,並從this站點複製代碼。儘管如此,功能似乎工作的唯一頁面是Firefox的about:debugging
頁面。所以我不明白我在這裏錯過了什麼?!
請將[問題]置於主題上:包括一個[重複出現問題*的[mcve]]。對於Chrome擴展程序或Firefox Web擴展程序,幾乎總是需要包含* manifest.json *和一些背景,內容和/或彈出腳本/ HTML以及常用的網頁HTML /腳本。尋求調試幫助的問題(「爲什麼我的代碼不按我想要的方式工作?」)必須包括:(1)期望的行爲,(2)特定問題或錯誤,以及(3)重現它所需的最短代碼*在問題本身*。請參閱:[我可以在這裏詢問什麼主題?](/ help/on-topic)和[問]。 – Makyen
@Makyen抱歉沒有這樣做。但是,正如你所看到的,上面的代碼('popup腳本')不起作用。請查看答案和此後的討論。答案是「等待'Mozilla'做些什麼」。但是如果它讓帖子更好,我仍然會發布'manifest.json' :)。關於「背景腳本」,主要目的是不使用它。 – Miraj50