我想要一个简单的Chrome应用或Ext来更快地下载图片。目前,您必须右键单击并选择另存为等
我看过这个近距离的APP(https://chrome.google.com/webstore/detail/save-image-to-downloads/enjefpkmlibebgbbgidmhpmjhcdffhfm?hl=en)。
清单:
{
"background": {
"scripts": [ "save_to_downloads.js" ]
},
"description": "Adds a right-click direct download item for images, like Safari.",
"icons": {
"128": "icon128.png",
"16": "icon16.png",
"48": "icon48.png"
},
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDXdc9crODeqJcWfwjo671hou/LWYzRmQFi/k/uwGE2Z1ARkm/NAIXS0amsfqCzb2FRJuw9exHGH1E98zotxW94zOY+UesJ4bz9SQT3NTcDcqmB2l1UhHRL0dCXVMig7LZyVyOO8FeBQZULzplF9MylZfBRER+L+d1HN186FFf+9QIDAQAB",
"manifest_version": 2,
"name": "Save Image to Downloads",
"permissions": [ "downloads", "contextMenus" ],
"update_url": "http://clients2.google.com/service/update2/crx",
"version": "1.0.5"
}
save_to_downloads.js:
function _anchorDownloader(url, filename) {
var timeout = 500;
return 'javascript:\'<!doctype html><html>'+
'<head></head>' +
'<script>' +
'function initDownload() {'+
'var el = document.getElementById("anchor");'+
'el.click();' +
'setTimeout(function() { window.close(); }, ' + timeout + ');' +
'}'+
'</script>' +
'<body onload="initDownload()">' +
'<a id="anchor" href="' + url + '" download="'+ filename + '"></a>'+
'</body>' +
'</html>\'';
};
// A generic onclick callback function.
function downloadResource(info, tab) {
var url = info['srcUrl'];
console.log("url: " + url);
var filename = url.substring(url.lastIndexOf('/')+1);
if (chrome.downloads) {
chrome.downloads.download({ url: url, filename: filename, saveAs: false });
} else {
var a = document.createElement('a');
a.href = url;
a.download = filename;
// a.click();
chrome.tabs.create( { 'url' : _anchorDownloader( url, filename ), 'active' : false } ); // gets around the download limit
}
}
// Register the contextual menu
chrome.contextMenus.create({"title": "Save Image to Downloads…", "contexts":["image"], "onclick": downloadResource});
这可以使用右键单击和上下文菜单选项下载到默认文件夹。
有没有人知道如何稍微改变这一点,以便使用鼠标点击(例如ALT +右键单击)来下载而不是上下文菜单?
由于
答案 0 :(得分:0)
您可以使用内容脚本将脚本注入到您想要功能的页面中:
https://developer.chrome.com/extensions/content_scripts
在您的内容脚本中,您需要添加一个事件监听器,以便点击&#39;查看你传递的MouseEvent并查看&#39; altKey&#39; property设置为true。如果是这样,您可以进行下载。
请注意,许多扩展API只能从扩展程序自己的页面(例如后台页面,浏览器操作弹出窗口等)调用,而不能直接在内容脚本中调用。因此,在这种情况下,您可能需要使用消息传递API让内容脚本将消息发送到您的后台页面,并显示要下载的映像的URL。有关详细信息,请参阅https://developer.chrome.com/extensions/messaging。