<!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">117 条</span>
</div>
<div class="info-item">
<span class="info-label">热点新闻</span>
<span class="info-value">13 条</span>
</div>
<div class="info-item">
<span class="info-label">生成时间</span>
<span class="info-value">02-17 09:45</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 hot">11 条</div>
</div>
<div class="word-index">1/2</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 ">7</span><span class="time-info">09时45分</span>
</div>
<div class="news-title"><a href="https://s.weibo.com/weibo?q=%23%E6%98%A5%E6%99%9A%E6%80%BB%E5%AF%BC%E6%BC%94%E5%9B%9E%E5%BA%94%E6%9C%BA%E5%99%A8%E4%BA%BA%E6%B5%93%E5%BA%A6%E9%AB%98%23&t=31&band_rank=7&Refer=top" 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 ">8</span><span class="time-info">09时45分</span>
</div>
<div class="news-title"><a href="https://www.zhihu.com/question/2006736136949691490" target="_blank" class="news-link">如何评价宇树机器人在 2026 年春晚的表现?相比去年,你观察到了哪些进步?</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 ">10</span><span class="time-info">09时45分</span>
</div>
<div class="news-title"><a href="https://www.toutiao.com/trending/7607243147911020580/" target="_blank" class="news-link">外国网友惊叹中国机器人进化开倍速</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">4</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">抖音</span><span class="rank-num ">10</span><span class="time-info">09时45分</span>
</div>
<div class="news-title"><a href="https://www.douyin.com/hot/2403438" target="_blank" class="news-link">春晚机器人齐聚抖音</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">5</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时45分</span>
</div>
<div class="news-title"><a href="https://www.baidu.com/s?wd=%E6%98%A5%E6%99%9A%E6%9C%BA%E5%99%A8%E4%BA%BA%E8%BF%98%E6%98%AF%E5%A4%AA%E5%85%A8%E9%9D%A2%E4%BA%86" target="_blank" class="news-link">春晚机器人还是太全面了</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">6</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">今日头条</span><span class="rank-num ">20</span><span class="time-info">09时45分</span>
</div>
<div class="news-title"><a href="https://www.toutiao.com/trending/7607624909648301587/" target="_blank" class="news-link">人形机器人产业化还有多远</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">7</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时45分</span>
</div>
<div class="news-title"><a href="https://www.baidu.com/s?wd=%E6%98%A5%E6%99%9A%E5%90%8E%E6%9C%BA%E5%99%A8%E4%BA%BA%E5%8D%96%E7%88%86%E4%BA%86" target="_blank" class="news-link">春晚后机器人卖爆了</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">8</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时45分</span>
</div>
<div class="news-title"><a href="https://s.weibo.com/weibo?q=%23%E5%AE%A2%E6%9C%8D%E5%9B%9E%E5%BA%94%E6%98%A5%E6%99%9A%E5%90%8C%E6%AC%BE%E6%9C%BA%E5%99%A8%E4%BA%BA85000%E5%85%83%23&t=31&band_rank=27&Refer=top" target="_blank" class="news-link">客服回应春晚同款机器人85000元</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">9</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">今日头条</span><span class="rank-num ">28</span><span class="time-info">09时45分</span>
</div>
<div class="news-title"><a href="https://www.toutiao.com/trending/7607603028195020330/" target="_blank" class="news-link">28岁创始人把机器人送到春晚</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">10</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">百度热搜</span><span class="rank-num ">28</span><span class="time-info">09时45分</span>
</div>
<div class="news-title"><a href="https://www.baidu.com/s?wd=%E7%8E%8B%E5%85%B4%E5%85%B4%E6%8F%AD%E7%A7%98%E6%9C%BA%E5%99%A8%E4%BA%BA%E2%80%9C%E7%BB%83%E5%8A%9F%E7%A7%98%E7%B1%8D%E2%80%9D" target="_blank" class="news-link">王兴兴揭秘机器人“练功秘籍”</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">11</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">百度热搜</span><span class="rank-num ">30</span><span class="time-info">09时45分</span>
</div>
<div class="news-title"><a href="https://www.baidu.com/s?wd=%E6%9C%BA%E5%99%A8%E4%BA%BA%E5%85%A8%E9%9D%A2%E5%85%A5%E4%BE%B5%E6%98%A5%E6%99%9A" 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">ai 人工智能</div>
<div class="word-count ">2 条</div>
</div>
<div class="word-index">2/2</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 ">10</span><span class="time-info">09时45分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3765781" target="_blank" class="news-link">美银Hartnett:“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 ">11</span><span class="time-info">09时45分</span>
</div>
<div class="news-title"><a href="https://m.thepaper.cn/newsDetail_forward_32622644" 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">新质生产力</div>
<div class="word-count">3 条提及 <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="新质生产力 趋势图" 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>