We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/lizouzt/TrendRadar'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
<!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">9 条</span>
</div>
<div class="info-item">
<span class="info-label">生成时间</span>
<span class="info-value">01-23 02:26</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 ">2 条</div>
</div>
<div class="word-index">1/6</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时26分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2266641" target="_blank" class="news-link">一图看懂 | 马斯克开年忙落子,太空、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 ">13</span><span class="time-info">02时26分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2266699" 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/6</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">02时26分</span>
</div>
<div class="news-title"><a href="https://www.douyin.com/hot/2376362" target="_blank" class="news-link">商务部回应H200芯片购买审批</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 ">19</span><span class="time-info">02时26分</span>
</div>
<div class="news-title"><a href="https://www.toutiao.com/trending/7598116374967225892/" 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">3/6</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">02时26分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2266535" target="_blank" class="news-link">【每日收评】短线情绪持续回暖,全市场连续两日逾百股涨超9%,商业航天概念卷土重来</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时26分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2266886" target="_blank" class="news-link">蓝箭航天IPO审核状态变更为“已问询”</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">4/6</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">02时26分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3763860" target="_blank" class="news-link">张坤4100点上首“发声”:消费、房价、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">5/6</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">02时26分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2266790" target="_blank" class="news-link">宇树科技:2025全年人形机器人实际出货量超5500台</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 ">1 条</div>
</div>
<div class="word-index">6/6</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时26分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2266624" target="_blank" class="news-link">上证50八连跌!此前历史仅有3次,成分股均跌超2%,银行、食饮跌幅明显</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">
7条提及 · <span class="new">新话题</span> · <span class="level-high">高热度</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">抢救期间曾被拉入工作群</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>程序员猝死 抢救期间曾被拉入工作群</li><li>程序员猝死 抢救期间曾被拉入工作群</li><li>32 岁程序员周末晕倒后猝死,抢救期间曾被拉入工作群,一个程序员的最后一天,暴露了怎样的职场病?</li></ul></div>
<div class="viral-topic-item">
<div class="viral-topic-header">
<div class="viral-topic-keyword">男子献血2</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>男子献血2.2万毫升不免票 景区道歉</li><li>男子献血2.2万毫升不免票景区道歉</li><li>男子献血2.2万毫升不免票景区道歉</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">1 条提及 <span style="color: #dc2626;">(↑0.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>