Есть, вероятно, несколько способов сделать это. Ниже вы узнаете, как начать. Это сохраняет веб-страницу на текущей сосредоточенной вкладке в активном окне до пути загрузки по умолчанию браузера. Имя файла имеет значение «samplePage.html» (вы можете изменить это, изменив значение имени файла в параметрах downloads.download(), или вы можете полностью удалить это поле и оставить его по умолчанию).
Вам необходимо будет store icon images в вашем пакете webextension, чтобы пользователь мог нажать. Кроме того, не забудьте перейти на веб-страницу, которую вы хотите сохранить, прежде чем пытаться использовать веб-расширение; webextensions не активны на странице Firefox: отладка.
манифеста:
{
"name": "SavePage",
"version": "1.0",
"description": "Clicking browser icon saves page html",
"manifest_version": 2,
"icons": {
"48": "icons/clickme-48.png"
},
"permissions": [
"tabs",
"activeTab",
"downloads"
],
"browser_action": {
"default_icon": "icons/clickme-32.png"
},
"background": {
"scripts": ["background.js"]
}
}
фон сценарий:
/* BACKGROUND SCRIPT
Clicking on browser toolbar button saves the webpage in the
current tab to the browser's default downloads path with a
filename of "samplePage.html". The "tabs" and "downloads"
permissions are required.
*/
browser.browserAction.onClicked.addListener((tab) => {
var currentUrl = tab.url;
function onStartedDownload(id) {
console.log(`Started to download: ${id}`);
}
function onFailed(error) {
console.log(`Something stinks: ${error}`);
}
var startDownload = browser.downloads.download({
url : currentUrl,
filename: 'samplePage.html'
});
startDownload.then(onStartedDownload, onFailed);
});
Альтернативный подход может заключаться в попытке сохранить веб-страницу, чтобы local storage, а не на диск. Я не изучил этот вариант.
Эти страницы могут быть полезны:
downloads.download()
browserAction.onClicked
Там могут быть риски для безопасности в придании webextension эти разрешения. Вам придется взвесить риски для своего собственного шаблона использования.
Будет ли это сохранять простой html на диск? Есть ли способ получить поведение «Сохранить как полный HTML» или «Сохранить как текст»? Благодаря! – lith
@ lith - Это своего рода академическое упражнение. Вы пытались использовать функцию «Сохранить страницу как ...» в контекстном меню, которое появляется из щелчка правой кнопкой мыши на странице? –
Я предполагаю, что «академический» является уничижительным термином в вашем мире. Просто потому, что вы не видите, что использование чего-то не означает, что для этого нет никакой пользы. Во всяком случае, спасибо за оригинальный ответ. – lith