<!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">17 条</span>
</div>
<div class="info-item">
<span class="info-label">生成时间</span>
<span class="info-value">02-06 02:42</span>
</div>
</div>
</div>
<div class="content">
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">谷歌 google</div>
<div class="word-count ">3 条</div>
</div>
<div class="word-index">1/9</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">4</span><span class="time-info">02时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 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时42分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2282073" target="_blank" class="news-link">美股三大期指集体走低 谷歌盘前跌超4% | 今夜看点</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 ">6</span><span class="time-info">02时42分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3765004" target="_blank" class="news-link">谷歌电话会:1850亿支出“不得不花”,确认与苹果合作,Gemini并非SaaS的“终结者”</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 ">3 条</div>
</div>
<div class="word-index">2/9</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">2</span><span class="time-info">02时42分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2281678" target="_blank" class="news-link">存储芯片荒难解!惠普等PC大厂据称首次考虑中国大陆供应商</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时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 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">02时42分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3765001" target="_blank" class="news-link">去年4月以来最大跌幅,纳指“两连跌”:软件“失火”、芯片“遭殃”、科技“跳水”</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 ">3 条</div>
</div>
<div class="word-index">3/9</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时42分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2281758" target="_blank" class="news-link">A股2026年春节休市安排公布</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 ">7</span><span class="time-info">02时42分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3765013" target="_blank" class="news-link">A股三大股指齐跌,太空光伏、贵金属掀跌停潮,贵州茅台四连涨,恒科指尾盘翻红,科网股普遍回暖,沪银大跌超10%</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时42分</span>
</div>
<div class="news-title"><a href="https://www.baidu.com/s?wd=A%E8%82%A1%E6%98%A5%E8%8A%82%E4%BC%91%E5%B8%82%E5%AE%89%E6%8E%92%E6%9D%A5%E4%BA%86" target="_blank" class="news-link">A股春节休市安排来了</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 ">2 条</div>
</div>
<div class="word-index">4/9</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时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 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 ">9</span><span class="time-info">02时42分</span>
</div>
<div class="news-title"><a href="https://www.zhihu.com/question/2002675555208803379" target="_blank" class="news-link">美股科技股抛售蔓延,闪迪跌近 16%,AMD 跌超 17% 创八年多来最大单日跌幅,光伏板块爆发,如何解读?</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">5/9</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">3</span><span class="time-info">02时42分</span>
</div>
<div class="news-title"><a href="https://search.bilibili.com/all?keyword=UP%E4%B8%BB%E4%BB%AC%E7%94%A8AI%E5%8A%9E%E4%BA%86%E5%9C%BA%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 ">12</span><span class="time-info">02时42分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2281879" 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">英伟达 NVIDIA 黄仁勋</div>
<div class="word-count ">1 条</div>
</div>
<div class="word-index">6/9</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">02时42分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3765006" target="_blank" class="news-link">如果AI击溃了软件,“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">7/9</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时42分</span>
</div>
<div class="news-title"><a href="https://www.zhihu.com/question/2002420086112217076" target="_blank" class="news-link">宇树机器人在 -47.4°C 阿勒泰自主行走 13 万步,实现了哪些突破?极寒环境对人形机器人有哪些挑战?</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">8/9</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时42分</span>
</div>
<div class="news-title"><a href="https://www.douyin.com/hot/2390977" target="_blank" class="news-link">官方回应男子从着火电车连救3人</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">9/9</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 ">8</span><span class="time-info">02时42分</span>
</div>
<div class="news-title"><a href="https://search.bilibili.com/all?keyword=%E6%B7%B1%E6%89%92%E5%8D%B0%E5%BA%A6%E7%94%B5%E5%8A%9B%E9%BB%91%E6%B4%9E" 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">AI</div>
<div class="viral-topic-stats">
6条提及 · <span class="up">↑3%</span> · <span class="level-mid">中热度</span>
</div>
</div>
<ul class="viral-sample-titles"><li>AI目前对SaaS最大的冲击:AI 并没有在功能上吃掉你的产品,它是在财务上吃掉了你的预算</li><li>谷歌All in AI:Q4云收入猛增48%,今年支出指引接近翻倍大超预期,盘后巨震 | 财报见闻</li><li>谷歌ALL in AI!Q4云业务激增48% 2026“烧钱”速度翻倍</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">7 条提及 <span style="color: #dc2626;">(↑400.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>