DOSforever
千年狐狸
千年狐狸
  • UID25201
  • 注册日期2008-07-03
  • 最后登录2024-05-05
  • 发帖数1093
  • 经验836枚
  • 威望0点
  • 贡献值734点
  • 好评度22点
  • 社区居民
  • 忠实会员
阅读:1540回复:5

有没有把一侧所有 tab 中的图片另存为的扩展件?

楼主#
更多 发布于:2014-11-21 10:07
有没有这样的扩展件:把一侧,所有左侧或右侧所打开的 tab ,每个 tab 都只有一张图片,把这些图片全都另存为一个地方。或者有没有这样的操作技巧?
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-04-29
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
1楼#
发布于:2014-11-21 10:50
你的需求可以分为两个:对某标签页左侧或右侧标签页进行操作,将某一个标签页所有图片保存到指定目录,前者印象中只看到标签类扩展可以做到,比如TMP,后者类似save images保存图片,两个结合起来的扩展我没啥印象。
Firefox More than meets your experience
刀锋上追梦
火狐狸
火狐狸
  • UID42690
  • 注册日期2013-12-06
  • 最后登录2022-08-25
  • 发帖数204
  • 经验180枚
  • 威望0点
  • 贡献值60点
  • 好评度11点
  • 社区居民
  • 忠实会员
2楼#
发布于:2014-11-21 12:33
fang5566:你的需求可以分为两个:对某标签页左侧或右侧标签页进行操作,将某一个标签页所有图片保存到指定目录,前者印象中只看到标签类扩展可以做到,比如TMP,后者类似save images保存图片,两个结合起来的扩展我没啥印象。回到原帖
你可以尝试帮楼主该一下这个
page({
    label: "保存所有图片到 zip",
    oncommand: function() {
        // 保存ディレクトリのパスがない场合は毎回ダイアログで决める
        //var path = "C:\\Users\\azu\\Downloads"; // エスケープしたディレクトリのパス
        var path = "";
        if (!path) {
            // ファイル保存ダイアログ
            var nsIFilePicker = Ci.nsIFilePicker;
            var FP = Cc['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
            FP.init(window, 'Choose save folder.', nsIFilePicker.modeGetFolder);
 
            // ダイアログ表示
            if (FP.show() == nsIFilePicker.returnOK) {
                path = FP.file.path;
            } else {
                return false;
            }
        }
        // ダウンロードしたページを表示するために URI オブジェクト生成
        var hostURL = Components.classes['@mozilla.org/network/io-service;1'].getService(Components.interfaces.nsIIOService).newURI(location.href, null, null);
        // ページに贴り付けられた画像を保存する
        var links = content.document.images;
        var pack = [];
        for (var i = 0, length = links.length; i < length; i++) {
            // JPEG と PNG を保存する
            if (links[i].src.match(/\.jpe?g|\.png|img\.blogs\.yahoo(.*)folder[^thumb]/i)) {
                pack.push([links[i].src.split("/").pop(), links[i].src]);
            }
        }
        zipDeKure(pack, path);
 
 
        function zipDeKure(urls, savePath) {
            const ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
            const zipWriter = Components.Constructor("@mozilla.org/zipwriter;1", "nsIZipWriter");
            var uri = content.window.location.href;
            var fileName = uri.substring(uri.lastIndexOf('://') + 3, uri.length);
            fileName = fileName.split(".").join("_");
            fileName = fileName.split("/").join("_");
            fileName = fileName.split("?").join("_");
            var path = savePath + "\\" + fileName + ".zip";
            var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
            file.initWithPath(path);
            var zipW = new zipWriter();
            var ioFlag = 0x04 | 0x08 | 0x20;
            zipW.open(file, ioFlag);
            for (var i = 0, len = urls.length; i < len; i++) {
                var [name, url] = urls[i];
                var ch = ioService.newChannel(url, "UTF-8", null);
                var stream = ch.open();
                zipW.addEntryStream(name, Date.now() * 1000, Ci.nsIZipWriter.COMPRESS_DEFAULT, stream, false);
            }
            zipW.close();
        }
    },
    image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABBElEQVQ4jdWSsWqEQBBAbcRKC4VlBf8gfUr/w1oQBLuABNlUNkE2LCJqJQe6CZFUqXIfkINwCP6B2ITbI22uCCkmnVwCB9pdHrxqmMcUI0lnAef8uWmazVw55xvGWDEF6rreO44DS6yqajsFsizb2bYNS2SMvU2BMAzfZVkGVVVB13VACAHGGEzTBNM0AWMMCCEwDAM0TQNFUSCKotdfAUmSYIlnFnhZrz/SNP3MsmyWRVEc2rbdHl1wnSRJsqKUTpZl+dT3/b7rul2e54/HM0rpyvO8q5OPFcdxMY7jtxAChBAwDMNXEAQ3Jxf+YlnWpe/7d4SQB0LIveu6txjji9mB/8UPojsDPwcvqoEAAAAASUVORK5CYII="
});
flycomics
火狐狸
火狐狸
  • UID28928
  • 注册日期2009-05-21
  • 最后登录2022-05-10
  • 发帖数277
  • 经验91枚
  • 威望0点
  • 贡献值102点
  • 好评度3点
  • 社区居民
  • 忠实会员
3楼#
发布于:2014-11-21 14:16
文科
千年狐狸
千年狐狸
  • UID39959
  • 注册日期2013-10-17
  • 最后登录2019-07-27
  • 发帖数2069
  • 经验1328枚
  • 威望4点
  • 贡献值340点
  • 好评度256点
  • 最爱沙发
  • 社区居民
  • 忠实会员
4楼#
发布于:2014-11-21 14:56
downthemall
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
5楼#
发布于:2014-11-22 16:06
这个问题的主要难度是,你看起来“每个tab只有一张图片”,但实际上页面的结构却相当不规整,但是提取出图片这一步就需要专门的扩展
第二步是对每个标签进行同样的批量操作,目前我似乎没有看见具有类似功能的扩展

所以我的建议是,要么退而其次,使用image picker类似物,人工对每个标签进行操作;如果需要操作的tab非常多,那么就针对图片提取的逻辑写个脚本自行提取
-いたんですか? -ええ、ずっと
游客

返回顶部