测试
本帖最后由 天天的鸟蛋蛋 于 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]