<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>热点新闻分析</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js" integrity="sha512-BNaRQnYJYiPSqHHDb58B0yaPfCu+Wgds8Gp/gU33kqBtgNS4tSPHuGibyoeqMV/TJlSKda6FXzoEyYGjTe+vXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<style>
* { box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
margin: 0;
padding: 16px;
background: #fafafa;
color: #333;
line-height: 1.5;
}
.container {
max-width: 600px;
margin: 0 auto;
background: white;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 2px 16px rgba(0,0,0,0.06);
}
.header {
background: linear-gradient(135deg, #7a72ff 0%, #3aafed 100%);
color: #fff;
padding: 32px 24px;
text-align: center;
position: relative;
}
.save-buttons {
position: absolute;
top: 16px;
right: 16px;
display: flex;
gap: 8px;
}
.save-btn {
background: rgba(255, 255, 255, 0.2);
border: 1px solid rgba(255, 255, 255, 0.3);
color: white;
padding: 8px 16px;
border-radius: 6px;
cursor: pointer;
font-size: 13px;
font-weight: 500;
transition: all 0.2s ease;
backdrop-filter: blur(10px);
white-space: nowrap;
}
.save-btn:hover {
background: rgba(255, 255, 255, 0.3);
border-color: rgba(255, 255, 255, 0.5);
transform: translateY(-1px);
}
.save-btn:active {
transform: translateY(0);
}
.save-btn:disabled {
opacity: 0.6;
cursor: not-allowed;
}
.header-title {
font-size: 22px;
font-weight: 700;
margin: 0 0 20px 0;
}
.header-info {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
font-size: 14px;
opacity: 0.95;
}
.info-item {
text-align: center;
}
.info-label {
display: block;
font-size: 12px;
opacity: 0.8;
margin-bottom: 4px;
}
.info-value {
font-weight: 600;
font-size: 16px;
}
.content {
padding: 24px;
}
.word-group {
margin-bottom: 40px;
}
.word-group:first-child {
margin-top: 0;
}
.word-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20px;
padding-bottom: 8px;
border-bottom: 1px solid #f0f0f0;
}
.word-info {
display: flex;
align-items: center;
gap: 12px;
}
.word-name {
font-size: 17px;
font-weight: 600;
color: #1a1a1a;
}
.word-count {
color: #666;
font-size: 13px;
font-weight: 500;
}
.word-count.hot { color: #dc2626; font-weight: 600; }
.word-count.warm { color: #ea580c; font-weight: 600; }
.word-index {
color: #999;
font-size: 12px;
}
.news-item {
margin-bottom: 20px;
padding: 16px 0;
border-bottom: 1px solid #f5f5f5;
position: relative;
display: flex;
gap: 12px;
align-items: center;
}
.news-item:last-child {
border-bottom: none;
}
.news-item.new::after {
content: "NEW";
position: absolute;
top: 12px;
right: 0;
background: #fbbf24;
color: #92400e;
font-size: 9px;
font-weight: 700;
padding: 3px 6px;
border-radius: 4px;
letter-spacing: 0.5px;
}
.news-number {
color: #999;
font-size: 13px;
font-weight: 600;
min-width: 20px;
text-align: center;
flex-shrink: 0;
background: #f8f9fa;
border-radius: 50%;
width: 24px;
height: 24px;
display: flex;
align-items: center;
justify-content: center;
align-self: flex-start;
margin-top: 8px;
}
.news-content {
flex: 1;
min-width: 0;
padding-right: 40px;
}
.news-item.new .news-content {
padding-right: 50px;
}
.news-header {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 8px;
flex-wrap: wrap;
}
.source-name {
color: #666;
font-size: 12px;
font-weight: 500;
}
.rank-num {
color: #fff;
background: #6b7280;
font-size: 10px;
font-weight: 700;
padding: 2px 6px;
border-radius: 10px;
min-width: 18px;
text-align: center;
}
.rank-num.top { background: #dc2626; }
.rank-num.high { background: #ea580c; }
.time-info {
color: #999;
font-size: 11px;
}
.count-info {
color: #059669;
font-size: 11px;
font-weight: 500;
}
.news-title {
font-size: 15px;
line-height: 1.4;
color: #1a1a1a;
margin: 0;
}
.news-link {
color: #2563eb;
text-decoration: none;
}
.news-link:hover {
text-decoration: underline;
}
.news-link:visited {
color: #7c3aed;
}
.topic-trend-section {
margin-top: 40px;
padding-top: 24px;
border-top: 2px solid #f0f0f0;
}
.topic-trend-title {
color: #1a1a1a;
font-size: 16px;
font-weight: 600;
margin: 0 0 20px 0;
}
.viral-topic-item {
padding: 16px 0;
border-bottom: 1px solid #f5f5f5;
}
.viral-topic-item:last-child {
border-bottom: none;
}
.viral-topic-header {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 12px;
}
.viral-topic-keyword {
font-size: 16px;
font-weight: 600;
}
.topic-item {
display: flex;
align-items: center;
gap: 12px;
padding: 8px 0;
border-bottom: 1px solid #f9f9f9;
}
.topic-item:last-child {
border-bottom: none;
}
.viral-topic-stats {
font-size: 12px;
color: #666;
}
.viral-topic-stats .new { color: #dc2626; font-weight: bold; }
.viral-topic-stats .up { color: #f59e0b; font-weight: bold; }
.viral-topic-stats .level-high { color: #dc2626; font-weight: bold; }
.viral-topic-stats .level-mid { color: #f59e0b; font-weight: bold; }
.viral-sample-titles {
list-style: none;
padding-left: 16px;
margin: 0;
font-size: 13px;
}
.viral-sample-titles li {
color: #666;
padding: 4px 0;
position: relative;
}
.viral-sample-titles li::before { content: '▪'; position: absolute; left: -14px; color: #ccc; }
.new-section {
margin-top: 40px;
padding-top: 24px;
border-top: 2px solid #f0f0f0;
}
.new-section-title {
color: #1a1a1a;
font-size: 16px;
font-weight: 600;
margin: 0 0 20px 0;
}
.new-source-group {
margin-bottom: 24px;
}
.new-source-title {
color: #666;
font-size: 13px;
font-weight: 500;
margin: 0 0 12px 0;
padding-bottom: 6px;
border-bottom: 1px solid #f5f5f5;
}
.new-item {
display: flex;
align-items: center;
gap: 12px;
padding: 8px 0;
border-bottom: 1px solid #f9f9f9;
}
.new-item:last-child {
border-bottom: none;
}
.new-item-number {
color: #999;
font-size: 12px;
font-weight: 600;
min-width: 18px;
text-align: center;
flex-shrink: 0;
background: #f8f9fa;
border-radius: 50%;
width: 20px;
height: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.new-item-rank {
color: #fff;
background: #6b7280;
font-size: 10px;
font-weight: 700;
padding: 3px 6px;
border-radius: 8px;
min-width: 20px;
text-align: center;
flex-shrink: 0;
}
.new-item-rank.top { background: #dc2626; }
.new-item-rank.high { background: #ea580c; }
.new-item-content {
flex: 1;
min-width: 0;
}
.new-item-title {
font-size: 14px;
line-height: 1.4;
color: #1a1a1a;
margin: 0;
}
.error-section {
background: #fef2f2;
border: 1px solid #fecaca;
border-radius: 8px;
padding: 16px;
margin-bottom: 24px;
}
.error-title {
color: #dc2626;
font-size: 14px;
font-weight: 600;
margin: 0 0 8px 0;
}
.error-list {
list-style: none;
padding: 0;
margin: 0;
}
.error-item {
color: #991b1b;
font-size: 13px;
padding: 2px 0;
font-family: 'SF Mono', Consolas, monospace;
}
.footer {
margin-top: 32px;
padding: 20px 24px;
background: #f8f9fa;
border-top: 1px solid #e5e7eb;
text-align: center;
}
.footer-content {
font-size: 13px;
color: #6b7280;
line-height: 1.6;
}
.footer-link {
color: #4f46e5;
text-decoration: none;
font-weight: 500;
transition: color 0.2s ease;
}
.footer-link:hover {
color: #7c3aed;
text-decoration: underline;
}
.project-name {
font-weight: 600;
color: #374151;
}
@media (max-width: 480px) {
body { padding: 12px; }
.header { padding: 24px 20px; }
.content { padding: 20px; }
.footer { padding: 16px 20px; }
.header-info { grid-template-columns: 1fr; gap: 12px; }
.news-header { gap: 6px; }
.news-content { padding-right: 45px; }
.news-item { gap: 8px; }
.new-item { gap: 8px; }
.news-number { width: 20px; height: 20px; font-size: 12px; }
.save-buttons {
position: static;
margin-bottom: 16px;
display: flex;
gap: 8px;
justify-content: center;
flex-direction: column;
width: 100%;
}
.save-btn {
width: 100%;
}
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<div class="save-buttons">
<button class="save-btn" onclick="saveAsImage()">保存为图片</button>
<button class="save-btn" onclick="saveAsMultipleImages()">分段保存</button>
</div>
<div class="header-title">热点新闻分析</div>
<div class="header-info">
<div class="info-item">
<span class="info-label">报告类型</span>
<span class="info-value">实时分析</span>
</div>
<div class="info-item">
<span class="info-label">新闻总数</span>
<span class="info-value">136 条</span>
</div>
<div class="info-item">
<span class="info-label">热点新闻</span>
<span class="info-value">10 条</span>
</div>
<div class="info-item">
<span class="info-label">生成时间</span>
<span class="info-value">02-05 09:43</span>
</div>
</div>
</div>
<div class="content">
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">谐波器 机器人</div>
<div class="word-count ">3 条</div>
</div>
<div class="word-index">1/7</div>
</div>
<div class="news-item new">
<div class="news-number">1</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">今日头条</span><span class="rank-num ">9</span><span class="time-info">09时42分</span>
</div>
<div class="news-title"><a href="https://www.toutiao.com/trending/7602353123482566702/" target="_blank" class="news-link">机器人表演碰到老人双双倒地不起</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">2</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">今日头条</span><span class="rank-num ">22</span><span class="time-info">09时42分</span>
</div>
<div class="news-title"><a href="https://www.toutiao.com/trending/7603146508497866278/" target="_blank" class="news-link">国民党副主席到访清华看机器人表演</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">3</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">微博</span><span class="rank-num ">27</span><span class="time-info">09时42分</span>
</div>
<div class="news-title"><a href="https://s.weibo.com/weibo?q=%23%E6%88%90%E9%83%BD%E6%9C%BA%E5%99%A8%E4%BA%BA%E7%A2%B0%E5%88%B0%E8%80%81%E4%BA%BA%E5%8F%8C%E5%8F%8C%E5%80%92%E5%9C%B0%E4%B8%8D%E8%B5%B7%23&t=31&band_rank=27&Refer=top" target="_blank" class="news-link">成都机器人碰到老人双双倒地不起</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">特斯拉 马斯克</div>
<div class="word-count ">2 条</div>
</div>
<div class="word-index">2/7</div>
</div>
<div class="news-item new">
<div class="news-number">1</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">财联社热门</span><span class="rank-num ">9</span><span class="time-info">09时42分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2281019" target="_blank" class="news-link">马斯克财富突破8000亿美元 AMD掌门重申AI芯片需求强劲 | 环球市场</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">2</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">今日头条</span><span class="rank-num ">16</span><span class="time-info">09时42分</span>
</div>
<div class="news-title"><a href="https://www.toutiao.com/trending/7602861709359087667/" target="_blank" class="news-link">特斯拉AI总监:自动驾驶只需摄像头</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">AMD</div>
<div class="word-count ">1 条</div>
</div>
<div class="word-index">3/7</div>
</div>
<div class="news-item new">
<div class="news-number">1</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">华尔街见闻</span><span class="rank-num top">1</span><span class="time-info">09时42分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3764901" target="_blank" class="news-link">AI信仰动摇,软件与芯片股双双溃败,AMD暴跌17%,加密货币再度下挫</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">谷歌 google</div>
<div class="word-count ">1 条</div>
</div>
<div class="word-index">4/7</div>
</div>
<div class="news-item new">
<div class="news-number">1</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">华尔街见闻</span><span class="rank-num high">5</span><span class="time-info">09时42分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3764994" target="_blank" class="news-link">谷歌All in AI:Q4云收入猛增48%,今年支出指引接近翻倍大超预期,盘后巨震 | 财报见闻</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">ai 人工智能</div>
<div class="word-count ">1 条</div>
</div>
<div class="word-index">5/7</div>
</div>
<div class="news-item new">
<div class="news-number">1</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">bilibili 热搜</span><span class="rank-num ">28</span><span class="time-info">09时42分</span>
</div>
<div class="news-title"><a href="https://search.bilibili.com/all?keyword=R%E6%98%9F%E7%A7%B0GTA6%E4%B8%8D%E7%94%A8%E7%94%9F%E6%88%90%E5%BC%8FAI" target="_blank" class="news-link">R星称GTA6不用生成式AI</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">芯片 光刻机 光模块</div>
<div class="word-count ">1 条</div>
</div>
<div class="word-index">6/7</div>
</div>
<div class="news-item new">
<div class="news-number">1</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">华尔街见闻</span><span class="rank-num ">8</span><span class="time-info">09时42分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3764989" target="_blank" class="news-link">科技股大跌蔓延,存储芯片巨头遭“集体踩踏”!闪迪跌超10%</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">航天 飞船</div>
<div class="word-count ">1 条</div>
</div>
<div class="word-index">7/7</div>
</div>
<div class="news-item new">
<div class="news-number">1</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">财联社热门</span><span class="rank-num ">13</span><span class="time-info">09时42分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2280997" target="_blank" class="news-link">人民日报刊文:商业航天何以“一飞冲天”</a>
</div>
</div>
</div>
</div>
<div class="topic-trend-section">
<div class="topic-trend-title">🔥 异常热度话题</div>
<p style='color: #666; font-size: 14px;'>今日暂未检测到异常热度话题。</p></div>
<div class="topic-trend-section">
<div class="topic-trend-title">✨ 关注话题趋势</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">AMD</div>
<div class="word-count">6 条提及 <span style="color: #dc2626;">(↑300.00%)</span></div>
</div>
</div>
<div class="news-item">
<div class="news-content" style="padding-right: 0;">
<img src="data:image/png;base64,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" alt="AMD 趋势图" style="width: 100%; height: auto;" />
</div>
</div>
</div></div>
</div>
<div class="footer">
<div class="footer-content">
</div>
</div>
</div>
<script>
async function saveAsImage() {
const button = event.target;
const originalText = button.textContent;
try {
button.textContent = '生成中...';
button.disabled = true;
window.scrollTo(0, 0);
// 等待页面稳定
await new Promise(resolve => setTimeout(resolve, 200));
// 截图前隐藏按钮
const buttons = document.querySelector('.save-buttons');
buttons.style.visibility = 'hidden';
// 再次等待确保按钮完全隐藏
await new Promise(resolve => setTimeout(resolve, 100));
const container = document.querySelector('.container');
const canvas = await html2canvas(container, {
backgroundColor: '#ffffff',
scale: 1.5,
useCORS: true,
allowTaint: false,
imageTimeout: 10000,
removeContainer: false,
foreignObjectRendering: false,
logging: false,
width: container.offsetWidth,
height: container.offsetHeight,
x: 0,
y: 0,
scrollX: 0,
scrollY: 0,
windowWidth: window.innerWidth,
windowHeight: window.innerHeight
});
buttons.style.visibility = 'visible';
const link = document.createElement('a');
const now = new Date();
const filename = `TrendRadar_热点新闻分析_${now.getFullYear()}${String(now.getMonth() + 1).padStart(2, '0')}${String(now.getDate()).padStart(2, '0')}_${String(now.getHours()).padStart(2, '0')}${String(now.getMinutes()).padStart(2, '0')}.png`;
link.download = filename;
link.href = canvas.toDataURL('image/png', 1.0);
// 触发下载
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
button.textContent = '保存成功!';
setTimeout(() => {
button.textContent = originalText;
button.disabled = false;
}, 2000);
} catch (error) {
const buttons = document.querySelector('.save-buttons');
buttons.style.visibility = 'visible';
button.textContent = '保存失败';
setTimeout(() => {
button.textContent = originalText;
button.disabled = false;
}, 2000);
}
}
async function saveAsMultipleImages() {
const button = event.target;
const originalText = button.textContent;
const container = document.querySelector('.container');
const scale = 1.5;
const maxHeight = 5000 / scale;
try {
button.textContent = '分析中...';
button.disabled = true;
// 获取所有可能的分割元素
const newsItems = Array.from(container.querySelectorAll('.news-item'));
const wordGroups = Array.from(container.querySelectorAll('.word-group'));
const newSection = container.querySelector('.new-section');
const errorSection = container.querySelector('.error-section');
const header = container.querySelector('.header');
const footer = container.querySelector('.footer');
// 计算元素位置和高度
const containerRect = container.getBoundingClientRect();
const elements = [];
// 添加header作为必须包含的元素
elements.push({
type: 'header',
element: header,
top: 0,
bottom: header.offsetHeight,
height: header.offsetHeight
});
// 添加错误信息(如果存在)
if (errorSection) {
const rect = errorSection.getBoundingClientRect();
elements.push({
type: 'error',
element: errorSection,
top: rect.top - containerRect.top,
bottom: rect.bottom - containerRect.top,
height: rect.height
});
}
// 按word-group分组处理news-item
wordGroups.forEach(group => {
const groupRect = group.getBoundingClientRect();
const groupNewsItems = group.querySelectorAll('.news-item');
// 添加word-group的header部分
const wordHeader = group.querySelector('.word-header');
if (wordHeader) {
const headerRect = wordHeader.getBoundingClientRect();
elements.push({
type: 'word-header',
element: wordHeader,
parent: group,
top: groupRect.top - containerRect.top,
bottom: headerRect.bottom - containerRect.top,
height: headerRect.height
});
}
// 添加每个news-item
groupNewsItems.forEach(item => {
const rect = item.getBoundingClientRect();
elements.push({
type: 'news-item',
element: item,
parent: group,
top: rect.top - containerRect.top,
bottom: rect.bottom - containerRect.top,
height: rect.height
});
});
});
// 添加新增新闻部分
if (newSection) {
const rect = newSection.getBoundingClientRect();
elements.push({
type: 'new-section',
element: newSection,
top: rect.top - containerRect.top,
bottom: rect.bottom - containerRect.top,
height: rect.height
});
}
// 添加footer
const footerRect = footer.getBoundingClientRect();
elements.push({
type: 'footer',
element: footer,
top: footerRect.top - containerRect.top,
bottom: footerRect.bottom - containerRect.top,
height: footer.offsetHeight
});
// 计算分割点
const segments = [];
let currentSegment = { start: 0, end: 0, height: 0, includeHeader: true };
let headerHeight = header.offsetHeight;
currentSegment.height = headerHeight;
for (let i = 1; i < elements.length; i++) {
const element = elements[i];
const potentialHeight = element.bottom - currentSegment.start;
// 检查是否需要创建新分段
if (potentialHeight > maxHeight && currentSegment.height > headerHeight) {
// 在前一个元素结束处分割
currentSegment.end = elements[i - 1].bottom;
segments.push(currentSegment);
// 开始新分段
currentSegment = {
start: currentSegment.end,
end: 0,
height: element.bottom - currentSegment.end,
includeHeader: false
};
} else {
currentSegment.height = potentialHeight;
currentSegment.end = element.bottom;
}
}
// 添加最后一个分段
if (currentSegment.height > 0) {
currentSegment.end = container.offsetHeight;
segments.push(currentSegment);
}
button.textContent = `生成中 (0/${segments.length})...`;
// 隐藏保存按钮
const buttons = document.querySelector('.save-buttons');
buttons.style.visibility = 'hidden';
// 为每个分段生成图片
const images = [];
for (let i = 0; i < segments.length; i++) {
const segment = segments[i];
button.textContent = `生成中 (${i + 1}/${segments.length})...`;
// 创建临时容器用于截图
const tempContainer = document.createElement('div');
tempContainer.style.cssText = `
position: absolute;
left: -9999px;
top: 0;
width: ${container.offsetWidth}px;
background: white;
`;
tempContainer.className = 'container';
// 克隆容器内容
const clonedContainer = container.cloneNode(true);
// 移除克隆内容中的保存按钮
const clonedButtons = clonedContainer.querySelector('.save-buttons');
if (clonedButtons) {
clonedButtons.style.display = 'none';
}
tempContainer.appendChild(clonedContainer);
document.body.appendChild(tempContainer);
// 等待DOM更新
await new Promise(resolve => setTimeout(resolve, 100));
// 使用html2canvas截取特定区域
const canvas = await html2canvas(clonedContainer, {
backgroundColor: '#ffffff',
scale: scale,
useCORS: true,
allowTaint: false,
imageTimeout: 10000,
logging: false,
width: container.offsetWidth,
height: segment.end - segment.start,
x: 0,
y: segment.start,
windowWidth: window.innerWidth,
windowHeight: window.innerHeight
});
images.push(canvas.toDataURL('image/png', 1.0));
// 清理临时容器
document.body.removeChild(tempContainer);
}
// 恢复按钮显示
buttons.style.visibility = 'visible';
// 下载所有图片
const now = new Date();
const baseFilename = `TrendRadar_热点新闻分析_${now.getFullYear()}${String(now.getMonth() + 1).padStart(2, '0')}${String(now.getDate()).padStart(2, '0')}_${String(now.getHours()).padStart(2, '0')}${String(now.getMinutes()).padStart(2, '0')}`;
for (let i = 0; i < images.length; i++) {
const link = document.createElement('a');
link.download = `${baseFilename}_part${i + 1}.png`;
link.href = images[i];
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
// 延迟一下避免浏览器阻止多个下载
await new Promise(resolve => setTimeout(resolve, 100));
}
button.textContent = `已保存 ${segments.length} 张图片!`;
setTimeout(() => {
button.textContent = originalText;
button.disabled = false;
}, 2000);
} catch (error) {
console.error('分段保存失败:', error);
const buttons = document.querySelector('.save-buttons');
buttons.style.visibility = 'visible';
button.textContent = '保存失败';
setTimeout(() => {
button.textContent = originalText;
button.disabled = false;
}, 2000);
}
}
document.addEventListener('DOMContentLoaded', function() {
window.scrollTo(0, 0);
});
</script>
</body>
</html>