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">184 条</span>
</div>
<div class="info-item">
<span class="info-label">热点新闻</span>
<span class="info-value">10 条</span>
</div>
<div class="info-item">
<span class="info-label">生成时间</span>
<span class="info-value">02-02 20:47</span>
</div>
</div>
</div>
<div class="content">
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">特斯拉 马斯克</div>
<div class="word-count ">3 条</div>
</div>
<div class="word-index">1/5</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">20时47分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2277374" 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 ">15</span><span class="time-info">20时47分</span>
</div>
<div class="news-title"><a href="https://s.weibo.com/weibo?q=%23%E9%A9%AC%E6%96%AF%E5%85%8B%E7%89%B5%E6%89%8B%E5%8D%B0%E5%BA%A6%E8%A3%94%E5%A5%B3%E5%8F%8B%E5%8F%82%E5%8A%A0%E5%A9%9A%E7%A4%BC%23&t=31&band_rank=15&Refer=top" 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 ">18</span><span class="time-info">20时47分</span>
</div>
<div class="news-title"><a href="https://s.weibo.com/weibo?q=%23%E9%A9%AC%E6%96%AF%E5%85%8B%E5%8F%91%E7%8E%B0%E5%B2%9B%E4%B8%8A%E6%98%AF%E5%B0%91%E5%A5%B3%E6%B4%BE%E5%AF%B9%E6%9E%9C%E6%96%AD%E7%A6%BB%E5%BC%80%23&t=31&band_rank=18&Refer=top" target="_blank" class="news-link">马斯克发现岛上是少女派对果断离开</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">股票 A股 上证 深证</div>
<div class="word-count ">3 条</div>
</div>
<div class="word-index">2/5</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">20时47分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/premium/articles/3764602?layout=wscn-layout" target="_blank" class="news-link">汇丰中国财富洞察:“十五五”开局政策精准发力,监管稳市有助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 ">25</span><span class="time-info">20时47分</span>
</div>
<div class="news-title"><a href="https://www.toutiao.com/trending/7602160332387126826/" target="_blank" class="news-link">A股三大股指跌超2% 有色金属板块大跌</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 ">25</span><span class="time-info">20时47分</span>
</div>
<div class="news-title"><a href="https://www.baidu.com/s?wd=A%E8%82%A1%E6%94%B6%E8%AF%84%EF%BC%9A%E4%B8%89%E5%A4%A7%E6%8C%87%E6%95%B0%E8%B7%8C%E8%B6%852%25" target="_blank" class="news-link">A股收评:三大指数跌超2%</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/5</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 ">7</span><span class="time-info">20时47分</span>
</div>
<div class="news-title"><a href="https://search.bilibili.com/all?keyword=%E7%BA%A2%E5%8C%85%E8%80%81%E5%A5%B6%E5%A4%A7%E6%88%98%E6%9C%BA%E5%99%A8%E4%BA%BA" 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 ">19</span><span class="time-info">20时47分</span>
</div>
<div class="news-title"><a href="https://m.thepaper.cn/newsDetail_forward_32513400" 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">4/5</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">20时47分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3764715" target="_blank" class="news-link">沪指跌超2%险守4000点,金银、有色金属全线跌停,白酒逆势拉升,恒科指大跌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">5/5</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 ">12</span><span class="time-info">20时47分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2277867" target="_blank" class="news-link">十部门联合发布《低空经济标准体系建设指南(2025年版)》</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">
5条提及 · <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>
<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">2 条提及 <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>