2017-09-22 14 views
-1

1つ以上の正規表現で取り込まれたテキストをダウンロードできるChrome拡張機能を作成します。このような拡張機能の作成方法については、ChromeのSample ExtensionsDownload Selected Links)の1つをダウンロードしてインストールしました。'選択されたリンクをダウンロードしてください'サンプル拡張がリンクをダウンロードしていません

拡張機能のアイコンがブラウザに表示され、正規表現が正常に動作しているように見えます(ポップアップウィンドウには、表示されているタブからはっきりとはがされているような長いリンクが表示されます)。 [すべてダウンロード]ボタンをクリックすると、ポップアップウィンドウが閉じて、選択したリンクがダウンロードされません。

enter image description here

+1

何が問題なのかを手がかりにするには、[デバッグ](https://developer.chrome.com/extensions/tut_debugging)を使う必要があります。 – Xan

答えて

1

私はそれがwindow.close()を呼び出すpopup.jsからのコードの行を削除することによって動作させることができました:

// Download all visible checked links. 
function downloadCheckedLinks() { 
    for (var i = 0; i < visibleLinks.length; ++i) { 
    if (document.getElementById('check' + i).checked) { 
     chrome.downloads.download({url: visibleLinks[i]}, 
              function(id) { 
     }); 
    } 
    } 
    window.close(); // <-- Delete this line. 
} 

あなたは「ダウンロードをクリックした後、ポップアップウィンドウが現在開いたままになりますすべての 'ボタンを押すと、数分の1秒後にダウンロードが開始されます。私の推測では、ポップアップをwindow.close()で閉じると、ダウンロードを開始するために必要な許可が無効になっている可能性があります。

すべてのURLが選択されている(長いリスト、おそらく50以上)実験を行い、「すべてダウンロード」をクリックしてポップアップからクリックして閉じると、ダウンロードされた最初の5つまたはそれ以上のページが、それ以降はダウンロードされません。 How to download a file via a Chrome Content Script?を...しかし、私は(指定されたURLをダウンロードすることを指示するbackground.htmlにメッセージを送信する)メッセージパッシング方式の作業を取得することができませんでした:

は、私はまた、この一見、便利SO質問に出くわしました。

+2

最後に処理された項目のコールバックでwindow.closeを呼び出すことができます。 – wOxxOm

+2

ポップアップを閉じると、ページがアンロードされます。したがって、実行のためにキューに入れられたすべてのコードを中止します。メッセージングが機能しない場合は、新しい質問をしてください。 – Xan

関連する問題