0

contextMenuWeb サイトの PHP スクリプトに Ajax リクエストを送信する項目があります。

PHP スクリプトは.txtファイルを作成し、ダウンロード URL を拡張機能に再度返します。

次のステップで aDesktop Notificationが表示され、そこにダウンロード リンクを配置して、ユーザーが作成したファイルをダウンロードできるようにします。

問題は、そこで HTML を使用できないことです。非推奨になっているものを使用したくないcreateHTMLNotificationので、私のコードは次のとおりです。

var url = 'http://mydomain.com/somefile.txt';

var notification = window.webkitNotifications.createNotification(
    '48.png', 'Click to download', 'Some description');

notification.addEventListener('click', function() { // can't create <a> tag, so I'm tring with a click event. 
    notification.cancel();
    window.open(url);
});

notification.show();

この ( window.open()) ファイルを新しいタブで開きます。しかし、ブラウザで開かずに、ダウンロードするだけです。

何か案は?

4

1 に答える 1

0

解決策を見つけましたが、答えがないので書きます。

指定された URL からファイルをダウンロードするには、次を使用できますdownloads API's download method

function forceDownload(url) {
    var filename = url.replace(/^.*\/|\.[^.]*$/g, ''); // get basename

    chrome.downloads.download(
        {url: url, saveAs: true}, // options array
        function(id) {
            // callback function
        }
    );
};

私の状況forceDownload()では、メソッドはメソッドで呼び出されますAjax' done:

function exportEntries(info, tab) { 
    var user = 'blah blah';

    $.ajax({
        url: 'http://domain.com/export.php',
        method: 'POST',
        data: { topic: tab.url, user: user }
    }).done(function ( url ) {
        forceDownload(url);
    });
}
于 2013-04-06T05:58:48.773 に答える