Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome extension 如何在桌面通知窗口中创建下载链接?_Google Chrome Extension - Fatal编程技术网

Google chrome extension 如何在桌面通知窗口中创建下载链接?

Google chrome extension 如何在桌面通知窗口中创建下载链接?,google-chrome-extension,Google Chrome Extension,我有一个contextMenu项,它向我网站上的PHP脚本发送Ajax请求 PHP脚本创建一个.txt文件,并再次将下载URL返回到扩展名 在下一步中,将显示桌面通知,我想在那里放置下载链接,以便用户可以下载创建的文件 问题是我不能在那里使用HTML。我不想使用已弃用的createHTMLNotification,因此我的代码是: var url = 'http://mydomain.com/somefile.txt'; var notification = window.webkitNoti

我有一个
contextMenu
项,它向我网站上的PHP脚本发送Ajax请求

PHP脚本创建一个
.txt
文件,并再次将下载URL返回到扩展名

在下一步中,将显示
桌面通知
,我想在那里放置下载链接,以便用户可以下载创建的文件

问题是我不能在那里使用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();
var url='1〕http://mydomain.com/somefile.txt';
var notification=window.webkitNotifications.createNotification(
‘48.png’、‘点击下载’、‘一些说明’;
addEventListener('click',function(){//无法创建标记,因此我正在尝试一个click事件。
通知。取消();
窗口打开(url);
});
notification.show();
此(
window.open()
)将在新选项卡中打开文件。但我只想下载它,不想在浏览器中打开


有什么想法吗?

我找到了一个解决方案,既然没有任何答案,我就写下来

要从给定URL下载文件,您可以使用:

在我的情况下,
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);
    });
}

再见,谢谢!这种方法有一个问题。一个文件(甚至不同的文件)只会第一次下载。在此之后,直到重新加载扩展后,它才会工作。但是你的评论给了我正确的方向,我找到了我想要的。这是:
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);
    });
}