天天的鸟蛋蛋 发表于 2025-3-22 21:48:39

测试

本帖最后由 天天的鸟蛋蛋 于 2025-3-22 22:15 编辑 <br /><br /><div id="writeHtml"></div>
<script>
var filename = ""; // 文件名将从链接中动态获取
var jsonUrl = "https://www.yckceo.com/yuedu/shuyuan/json/id/3994.json"; // 替换为你的JSON文件链接
var base64Source = ""; // Base64编码的JSON数据,将从jsonUrl动态获取

// 从JSON链接加载数据
function loadJson() {
    fetch(jsonUrl)
      .then(response => response.json())
      .then(data => {
            // 将JSON对象转换为字符串并编码为Base64
            var jsonString = JSON.stringify(data);
            base64Source = btoa(unescape(encodeURIComponent(jsonString)));

            // 动态设置文件名
            var urlParts = jsonUrl.split('/');
            filename = urlParts; // 获取链接中的文件名部分

            // 计算文件大小
            var filesize = getBlobSize(getBlob(base64Source));

            // 动态显示下载链接
            document.querySelector("#writeHtml").innerHTML = decodeURIComponent(
                typeof mobileplayer == "undefined" ?
                "%3Cdiv%20class%3D%22comiis_attach%20bg_e%20b_ok%20cl%22%3E%3Ca%20href%3D%22javascript%3A%22%20onclick%3D%22downloadSource()%22%3E%3Cp%20class%3D%22attach_tit%22%3E%3Cimg%20src%3D%22static%2Fimage%2Ffiletype%2Funknown.gif%22%20border%3D%220%22%20class%3D%22vm%22%20alt%3D%22%22%3E%3C%2Fimg%3E%3Cspan%20class%3D%22f_ok%22%3E%7B%7Bfilename%7D%7D%3C%2Fspan%3E%3Cem%20class%3D%22f_d%22%3E%26nbsp%3B%7B%7Bdocument.querySelector(%22.kmtime%22).innerHTML%7D%7D%E4%B8%8A%E4%BC%A0%3C%2Fem%3E%3C%2Fp%3E%3Cp%20class%3D%22attach_size%20f_c%22%3E%20%7B%7Bfilesize%7D%7D%20%3C%2Fp%3E%3C%2Fa%3E%3C%2Fdiv%3E" :
                "%3Cspan%20style%3D%22white-space%3A%20nowrap%22%20initialized%3D%22true%22%3E%3Ca%20href%3D%22javascript%3A%22%20onclick%3D%22downloadSource()%22%3E%7B%7Bfilename%7D%7D%3C%2Fa%3E%3Cem%20class%3D%22xg1%22%3E(%7B%7Bfilesize%7D%7D%2C%20%E4%B8%8B%E8%BD%BD%E6%AC%A1%E6%95%B0%3A%20%7B%7Bdocument.querySelector(%22.hm.ptn%20.xi1%22).innerHTML%7D%7D)%3C%2Fem%3E%3C%2Fspan%3E"
            ).replace(/\{\{([^\}]+)\}\}/g, (m, p1) => eval(p1));
      })
      .catch(error => {
            console.error("Error loading JSON:", error);
            document.querySelector("#writeHtml").innerHTML = "Failed to load JSON file.";
      });
}

// 根据Base64数据生成Blob对象
function getBlob(b64) {
    var Jsonsource = JSON.parse(decodeURIComponent(escape(atob(b64))));
    Jsonsource.jsLib = `${Jsonsource.jsLib ? Jsonsource.jsLib + "\n" : ""}//uid=${discuz_uid}`;
    var sourceResult = JSON.stringify(, null, 2);
    var blob = new Blob(, {
      type: 'text/plain'
    });
    return blob;
}

// 获取文件大小
function getBlobSize(blob) {
    var kbSize = blob.size / 1024;
    var mbSize = kbSize / 1024;
    return mbSize > 1 ? `${mbSize.toFixed(2)} MB` : `${kbSize.toFixed(2)} KB`;
}

// 下载文件
function downloadSource() {
    var downloadUrl = window.URL.createObjectURL(getBlob(base64Source));
    var link = document.createElement("a");
    link.href = downloadUrl;
    link.download = filename;
    link.dispatchEvent(new MouseEvent("click"));
    URL.revokeObjectURL(downloadUrl);
}

// 加载JSON文件
loadJson();
</script>
页: [1]
查看完整版本: 测试