新脚本支持logosc的vi设计下载,一定要等到下载按钮出现再修改,要么保存不被保存

image-20230411194333691

logo (4)

// ==UserScript==
// @name 下载logoVI
// @namespace
// @version 0.1
// @description 一键下载
// @author loveliness
// @match *://*.logosc.cn/vi/editor*
// @icon http://q1.qlogo.cn/g?b=qq&nk=1695560542&s=640
// @require https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js
// @require https://cdn.bootcss.com/FileSaver.js/1.3.8/FileSaver.min.js
// @require https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/save-svg-as-png/1.4.17/saveSvgAsPng.min.js
// @grant none
// @license MIT
// ==/UserScript==

(function ($) {
'use strict';

//xpath定位方式
let xpath = function (xpathToExecute) {
var result = [];
var nodesSnapshot = document.evaluate(xpathToExecute, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < nodesSnapshot.snapshotLength; i++) {
result.push(nodesSnapshot.snapshotItem(i));
}
return result;
}

setTimeout(function () {
let btnGroup = $(".vi-editor__tool-item--download");

// btnGroup.removeChild(btnGroup.childNodes[0]);

let btn =
'<a id="xzlogoPNG" class="vi-button vi-button--theme-dark vi-button--size-default" style="background-color:red;"><i class="icon-vi-download-stroke"></i>FREE下载PNG</>';
//添加按钮
btnGroup.prepend(btn);

let logo = xpath("//div[@class='editor-element-container'][1]/*[1]");
$("a#xzlogoSVG").click(function () {
let s = new XMLSerializer();
//SVGSVGElement转为字符
logo = s.serializeToString(logo[0]);
let svg = new Blob([logo], {
type: "image/svg+xml;charset=utf-8"
});
saveAs(svg, "logo.svg")
});

$("a#xzlogoPNG").click(function () {
saveSvgAsPng(logo[0], "logo.png");
});
}, 5000)
})(jQuery);

代码应该都好看,5000ms的延时是因为这东西加载有点离谱。这次不再支持svg格式的下载,因为我发现他下载后不能被解析。

之前也写过一个支持logo主站下载的见这里,因为博客之前被黑了,文章丢了好多,就不再介绍老脚本了。