<!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">255 条</span>
</div>
<div class="info-item">
<span class="info-label">热点新闻</span>
<span class="info-value">12 条</span>
</div>
<div class="info-item">
<span class="info-label">生成时间</span>
<span class="info-value">02-08 02:28</span>
</div>
</div>
</div>
<div class="content">
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">英伟达 NVIDIA 黄仁勋</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 top">1</span><span class="time-info">02时28分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3765113" target="_blank" class="news-link">信心回暖引发逢低买盘,美股报复性反弹!道指首破5万点,英伟达大涨7%,金银V形上涨,比特币涨11%</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 high">5</span><span class="time-info">02时28分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3765228" 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 ">9</span><span class="time-info">02时28分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3765198" target="_blank" class="news-link">巨头砸钱6500亿加剧担忧,黄仁勋“灭火”:AI需求火爆,庞大支出合理、可持续</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 ">3 条</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">bilibili 热搜</span><span class="rank-num top">2</span><span class="time-info">02时28分</span>
</div>
<div class="news-title"><a href="https://search.bilibili.com/all?keyword=UP%E4%B8%BB%E8%81%94%E5%90%88%E8%87%AA%E5%88%B6AI%E6%98%A5%E6%99%9A" target="_blank" class="news-link">UP主联合自制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 high">5</span><span class="time-info">02时28分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2283350" target="_blank" class="news-link">一款AI工具“血洗”全球软件股 中国SaaS何去何从?</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 ">7</span><span class="time-info">02时28分</span>
</div>
<div class="news-title"><a href="https://www.toutiao.com/trending/7603910615171301402/" 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">股票 A股 上证 深证</div>
<div class="word-count ">2 条</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">3</span><span class="time-info">02时28分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2283724" target="_blank" class="news-link">太空光伏概念龙头三连板 P型HJT/钙钛矿叠层技术路线A股名单及相关业务一览</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">02时28分</span>
</div>
<div class="news-title"><a href="https://www.baidu.com/s?wd=A%E8%82%A1%E5%86%8D%E6%B7%BB%E4%B8%80%E4%BD%8D%E2%80%9C00%E2%80%9D%E5%90%8E%E8%91%A3%E4%BA%8B%E9%95%BF" target="_blank" class="news-link">A股再添一位“00”后董事长</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">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 ">11</span><span class="time-info">02时28分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2283596" target="_blank" class="news-link">特斯拉据称寻求提高光伏产能 Stellantis“电动化”梦碎 | 环球市场</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">gemini deepmind claude openai</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">华尔街见闻</span><span class="rank-num top">3</span><span class="time-info">02时28分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3765209" target="_blank" class="news-link">“DeepSeek时刻”1年后,市场见证了“Claude冲击”</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 ">6</span><span class="time-info">02时28分</span>
</div>
<div class="news-title"><a href="https://m.thepaper.cn/newsDetail_forward_32558291" 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 ">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 top">1</span><span class="time-info">02时28分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2283668" target="_blank" class="news-link">我国成功发射可重复使用试验航天器</a>
</div>
</div>
</div>
</div>
<div class="topic-trend-section">
<div class="topic-trend-title">🔥 异常热度话题</div>
<div class="viral-topic-item">
<div class="viral-topic-header">
<div class="viral-topic-keyword">爱泼斯坦死亡当晚监控曝光</div>
<div class="viral-topic-stats">
4条提及 · <span class="up">↑4%</span> · <span class="level-mid">中热度</span>
</div>
</div>
<ul class="viral-sample-titles"><li>爱泼斯坦死亡当晚监控曝光</li><li>爱泼斯坦死亡当晚监控曝光</li><li>爱泼斯坦死亡当晚监控曝光</li></ul></div>
<div class="viral-topic-item">
<div class="viral-topic-header">
<div class="viral-topic-keyword">91岁老人900万积蓄遭儿子儿媳挪用</div>
<div class="viral-topic-stats">
3条提及 · <span class="up">↑3%</span> · <span class="level-mid">中热度</span>
</div>
</div>
<ul class="viral-sample-titles"><li>91岁老人900万积蓄遭儿子儿媳挪用</li><li>91岁老人900万积蓄遭儿子儿媳挪用</li><li>91岁老人900万积蓄遭儿子儿媳挪用</li></ul></div></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">10 条提及 <span style="color: #059669;">(↓100.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>