AI 生成: 一个使用 Flask 构建的 AI 随机生成应用,可随机生成名字、故事、颜色、名言和密码,并支持一键复制。
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
// 获取页面元素
|
||||
const resultEl = document.getElementById("result");
|
||||
const copyBtn = document.getElementById("copyBtn");
|
||||
const buttons = document.querySelectorAll(".buttons button");
|
||||
|
||||
/**
|
||||
* 调用后端 API 生成随机内容
|
||||
* @param {string} kind - 生成类型
|
||||
*/
|
||||
async function generate(kind) {
|
||||
resultEl.textContent = "生成中...";
|
||||
resultEl.style.color = "#fff";
|
||||
|
||||
try {
|
||||
const res = await fetch(`/api/generate/${kind}`);
|
||||
const data = await res.json();
|
||||
|
||||
if (data.error) {
|
||||
resultEl.textContent = data.error;
|
||||
return;
|
||||
}
|
||||
|
||||
// 如果是颜色类型,直接展示色块
|
||||
if (kind === "color") {
|
||||
resultEl.textContent = data.result;
|
||||
resultEl.style.color = data.result;
|
||||
} else {
|
||||
resultEl.textContent = data.result;
|
||||
}
|
||||
} catch (err) {
|
||||
resultEl.textContent = "生成失败,请稍后重试";
|
||||
console.error(err);
|
||||
}
|
||||
}
|
||||
|
||||
// 为每个按钮绑定点击事件
|
||||
buttons.forEach((btn) => {
|
||||
btn.addEventListener("click", () => {
|
||||
generate(btn.dataset.kind);
|
||||
});
|
||||
});
|
||||
|
||||
// 复制结果到剪贴板
|
||||
copyBtn.addEventListener("click", async () => {
|
||||
const text = resultEl.textContent;
|
||||
if (!text || text === "点击上方按钮开始生成") return;
|
||||
|
||||
try {
|
||||
await navigator.clipboard.writeText(text);
|
||||
copyBtn.textContent = "已复制 ✓";
|
||||
setTimeout(() => (copyBtn.textContent = "复制结果"), 1500);
|
||||
} catch (err) {
|
||||
console.error("复制失败", err);
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user