2017-01-29 14 views
1

新しいFirefoxのWeb拡張機能を使用すると、現在のページ(またはその一部)をhtml(またはテキスト)としてディスクに保存する方法はありますか?そうでない場合は、どのようにチャンスがありますか?そのようなAPIは今後実装されるでしょうか?Firefox webextension:ページをhtmlまたはテキストとして保存

私は適切なAPIを見つけられず、助けに感謝します。

よろしく

答えて

1

おそらくこれを行うには、いくつかの方法があります。以下はあなたを始めさせるでしょう。アクティブウィンドウ内の現在フォーカスされているタブのWebページをブラウザのデフォルトのダウンロードパスに保存します。ファイル名は 'samplePage.html'に設定されています(downloads.download()オプションでファイル名の値を変更することで変更できます)、またはそのフィールドを完全に削除してデフォルトの名前に変更することができます。

ユーザーがクリックできるようにするには、webextensionパッケージにstore icon imagesが必要です。また、webextensionを使用する前に保存したいWebページに移動してください。 webextensionsはFirefoxのabout:debuggingページではアクティブではありません。

マニフェスト:

{ 
    "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にではなく、ディスクにWebページを保存しようとするかもしれません。私はその選択肢を検討していない。

これらのページが役に立つかもしれ:

downloads.download()

browserAction.onClicked

webextensionにこれらの権限を与えることで、セキュリティ上のリスクがあるかもしれません。あなた自身の使用パターンのためにリスクを測る必要があります。

+0

プレーンhtmlをディスクに保存しますか? 「完全なHTMLとして保存」または「テキストとして保存」の動作を取得する方法はありますか?ありがとう! – lith

+0

@lith - これは学問的な運動のようなものです。ページの右クリックからポップアップするコンテキストメニューから "Save Page As ..."機能を試しましたか? –

+0

私は "学問"はあなたの世界の敬虔な言葉だと思います。あなたが何かの使用を見ることができないという理由だけで、それが役に立たないというわけではありません。とにかく、元の答えに感謝します。 – lith

関連する問題