1618卡源网

探索优质内容的温暖港湾

API速取网站ICO图标,轻松提取favicon

在数字化信息检索过程中,许多用户都对如何快速获取网站的favicon(即ICO图标)深感兴趣。无论是用于项目开发、设计参考还是内容整理,一个便捷的API工具都能极大提升效率。本文将针对这一需求,通过FAQ问答形式,深度解答用户最关心的10个高频问题,并提供详细的解决方案与实操步骤,力求内容详实、易于上手。


问题一:什么是favicon图标?它在网站中扮演什么角色?

Favicon是“favorite icon”的缩写,它是一个与特定网站或网页相关联的微型标识。通常显示在浏览器标签页的左侧、书签列表、历史记录以及某些应用程序的链接预览中。其角色远超简单的装饰:一个清晰醒目的favicon能够强化品牌识别度,提升用户体验,让用户在多个打开的标签页中快速定位目标网站,同时也在专业性和可信度上为网站加分。


问题二:为什么需要专门使用API来获取网站的favicon,而不是直接保存网页图片?

手动保存图标看似直接,但实际操作中会遇到诸多不便。不同网站存放favicon的位置和格式不固定(可能位于根目录、特定路径,或嵌入在HTML的meta标签中),大小和规格也各不相同。手动查找费时费力。而一个设计良好的favicon提取API能够自动完成这些繁琐工作:它通过智能解析网站代码,遵循标准查找路径,快速定位并返回最合适的图标链接,甚至提供统一的尺寸格式,将整个过程简化为一次简单的API调用,非常适合批量处理或集成到自动化工作流中。


问题三:市面上有哪些可靠的favicon API服务?如何选择?

目前市面上有多家服务商提供此类API,例如Google的“Favicon Kit”、Clearbit的Logo API以及一些独立开发者的服务。在选择时,您需要综合考量几个关键点:首先是准确性和覆盖范围,优质的API应能应对各种复杂的网站结构;其次是响应速度与稳定性,这关乎您集成的应用体验;第三是价格与请求限制,根据您的使用频率选择合适的免费额度或付费套餐;最后是文档的完整性与技术支持,清晰易懂的文档能节省大量开发时间。


问题四:能否给出一个调用favicon API的完整实操示例?

当然可以。我们以一款假设的、功能全面的“FaviconFetch”API为例。其基础调用步骤非常简单:

1. 获取API密钥:前往服务商官网注册账户,通常可在控制台免费获取一个用于测试的密钥。

2. 构建请求URL:其通用格式为 https://api.faviconfetch.com/v1/icon?url=目标网址&api_key=你的密钥。

3. 发起HTTP请求:您可以使用任何熟悉的编程语言或工具(如JavaScript的Fetch、Python的requests库、或在浏览器地址栏直接测试)。

4. 解析响应:API通常会返回一个JSON对象,其中包含图标的直接下载链接(例如 iconUrl 字段)和一些元数据。

一个简单的JavaScript示例如下:

fetch('https://api.faviconfetch.com/v1/icon?url=https://example.com&api_key=YOUR_API_KEY')
  .then(response => response.json)
  .then(data => console.log('Favicon URL:', data.iconUrl));

问题五:如果API返回错误或找不到图标,应该如何排查和解决?

遇到图标获取失败时,请不要慌张,可以按照以下步骤进行系统排查:

• 检查目标网址格式:确保传入的URL完整且正确(包含http://或https://)。

• 验证API密钥:确认密钥未过期,并且在请求中拼写无误。

• 查阅API文档的错误代码:常见的错误如“404 Not Found”(网站本身无favicon)、“429 Too Many Requests”(超出调用频率限制)、“401 Unauthorized”(密钥无效)等,文档会提供具体解释。

• 尝试备用方案:某些网站可能使用非常规路径。一些高级API支持添加参数如 fallback=true 来尝试从第三方服务或缓存中获取通用图标。

• 直接分析网页源码:作为终极手段,您可以手动打开目标网页,查看HTML源代码,搜索“icon”或“shortcut icon”的link标签,这能帮助您理解API为何失败。


问题六:如何将获取到的favicon图标链接应用到我的项目中?

获取到图标的直接URL后,您有多种方式将其投入使用:

• 前端显示:直接在HTML的 标签中使用该URL作为src属性,即可在页面上展示。

• 生成书签列表:如果您在构建一个资源导航站,可以将图标与网站名称、链接一同存储在数据库中,并动态渲染到前端。

• 后台处理:您也可以使用服务器端语言(如Node.js、Python)将图标文件下载并保存到自己的服务器或CDN上,以减轻对外部API的依赖并加速访问。


问题七:这类API的调用通常有哪些限制或费用?

绝大多数API服务都设有调用限制。免费层通常提供每月一定次数的请求额度(例如1000次),适合个人或低流量项目。超出后则需要订阅付费计划,价格随请求次数增加而上升。此外,还可能存在每秒请求速率(QPS)的限制,以防止滥用。在选择前,请务必仔细阅读服务商的定价页面,并根据自己项目的预期流量和预算做出合理选择。


问题八:除了获取图标,这些API还能提供哪些额外信息?

许多功能更强大的favicon API不仅仅是返回一个链接。它们还可能提供丰富的附加数据,例如:

• 图标尺寸和文件格式。

• 网站的主色调分析。

• 网站的标题(从 标签提取)和简要描述。</p> <p>• 网站的类别或安全评级。</p> <p>这些数据对于进行网站分析、创建丰富的链接预览或数据可视化项目非常有价值。</p> <hr> <p><strong>问题九:在调用API时,如何保证程序的高性能和稳定性?</strong></p> <p>在生产环境中,以下几点至关重要:</p> <p>1. 实现缓存机制:将对同一域名的请求结果在一定时间内(如24小时)缓存起来,避免重复调用API,节省额度并提升响应速度。</p> <p>2. 设置超时与重试:网络请求可能失败,代码中应设置合理的超时时间(如3秒),并为可重试的错误(如网络波动)实现指数退避策略的重试逻辑。</p> <p>3. 错误降级处理:当API完全不可用时,应准备一个默认的图标或本地占位符,确保用户体验不受损。</p> <p>4. 异步与非阻塞调用:特别是在Web后端服务中,务必使用异步方式调用外部API,防止阻塞主线程,影响其他请求的处理。</p> <hr> <p><strong>问题十:能否分享一些基于favicon API的创意应用场景?</strong></p> <p>当然,它的用途远不止简单显示图标:</p> <p>• 打造个性化仪表盘:为监控的众多服务或网站制作一个带图标的仪表盘,状态一目了然。</p> <p>• 增强书签管理器:开发一款浏览器插件或独立应用,自动为导入的书签更新和匹配高质量的favicon。</p> <p>• 进行网络研究或安全分析:批量收集一系列网站的图标和元数据,用于分析行业趋势或识别钓鱼网站(钓鱼网站常使用与正版网站相似的favicon)。</p> <p>• 创建视觉化的链接收藏夹:设计师或创作者可以建立一个带精美图标的灵感资源库,视觉冲击力更强。</p> <hr> <p>希望以上针对10个核心问题的深度解答,能够帮助您全面理解并高效利用favicon API。从选择合适的服务到集成、优化乃至创意发挥,每一个环节都蕴含着提升效率的可能。请记住,在实际操作中,仔细阅读官方文档永远是成功的第一步。祝您在数据提取与项目开发的道路上得心应手!</p> </p> </div> </div> <footer class="sunset-article-footer"> <div class="sunset-article-actions"> <button type="button" class="sunset-action-btn sunset-like-btn" id="sunsetLikeBtn"> <div class="sunset-btn-icon"> <i class="layui-icon layui-icon-praise"></i> </div> <div class="sunset-btn-content"> <span class="sunset-btn-text">点赞</span> <span class="sunset-btn-count">0</span> </div> </button> <button type="button" class="sunset-action-btn sunset-share-btn" id="sunsetShareBtn"> <div class="sunset-btn-icon"> <i class="layui-icon layui-icon-share"></i> </div> <div class="sunset-btn-content"> <span class="sunset-btn-count">分享给朋友</span> </div> </button> <button type="button" class="sunset-action-btn sunset-collect-btn" id="sunsetCollectBtn"> <div class="sunset-btn-icon"> <i class="layui-icon layui-icon-star"></i> </div> <div class="sunset-btn-content"> <span class="sunset-btn-text">收藏</span> <span class="sunset-btn-count">加入收藏</span> </div> </button> </div> <div class="sunset-article-info"> <div class="sunset-update-time"> <i class="layui-icon layui-icon-time"></i> 最后更新:2026-10-27 12:04:28 </div> </div> </footer> <section class="sunset-related-section"> <div class="sunset-section-header"> <h3 class="sunset-section-title"> <i class="layui-icon layui-icon-template-1"></i> 相关推荐 </h3> <div class="sunset-section-decoration"> <div class="sunset-decoration-line"></div> <div class="sunset-decoration-sun"></div> <div class="sunset-decoration-line"></div> </div> </div> <div class="sunset-related-grid"> <div class="sunset-related-item"> <a href="http://joxp9.cn/faxing/25588.html" class="sunset-related-link"> <div class="sunset-related-content"> <h4 class="sunset-related-title">网站favicon图标提取API - 快速获取</h4> <div class="sunset-related-meta"> <span class="sunset-related-time"> <i class="layui-icon layui-icon-time"></i> 10-08 </span> <span class="sunset-related-views"> <i class="layui-icon layui-icon-read"></i> 14 </span> </div> </div> <div class="sunset-related-arrow"> <i class="layui-icon layui-icon-right"></i> </div> </a> </div> <div class="sunset-related-item"> <a href="http://joxp9.cn/faxing/25589.html" class="sunset-related-link"> <div class="sunset-related-content"> <h4 class="sunset-related-title">快速提取favicon,ICO图标获取API年度总结</h4> <div class="sunset-related-meta"> <span class="sunset-related-time"> <i class="layui-icon layui-icon-time"></i> 10-08 </span> <span class="sunset-related-views"> <i class="layui-icon layui-icon-read"></i> 13 </span> </div> </div> <div class="sunset-related-arrow"> <i class="layui-icon layui-icon-right"></i> </div> </a> </div> <div class="sunset-related-item"> <a href="http://joxp9.cn/faxing/25590.html" class="sunset-related-link"> <div class="sunset-related-content"> <h4 class="sunset-related-title">网站favicon图标快速提取API接口</h4> <div class="sunset-related-meta"> <span class="sunset-related-time"> <i class="layui-icon layui-icon-time"></i> 10-08 </span> <span class="sunset-related-views"> <i class="layui-icon layui-icon-read"></i> 21 </span> </div> </div> <div class="sunset-related-arrow"> <i class="layui-icon layui-icon-right"></i> </div> </a> </div> <div class="sunset-related-item"> <a href="http://joxp9.cn/faxing/25591.html" class="sunset-related-link"> <div class="sunset-related-content"> <h4 class="sunset-related-title">网页截图API - 实时更新快速保存</h4> <div class="sunset-related-meta"> <span class="sunset-related-time"> <i class="layui-icon layui-icon-time"></i> 10-08 </span> <span class="sunset-related-views"> <i class="layui-icon layui-icon-read"></i> 17 </span> </div> </div> <div class="sunset-related-arrow"> <i class="layui-icon layui-icon-right"></i> </div> </a> </div> <div class="sunset-related-item"> <a href="http://joxp9.cn/faxing/25592.html" class="sunset-related-link"> <div class="sunset-related-content"> <h4 class="sunset-related-title">网页实时截图API,快速保存工具</h4> <div class="sunset-related-meta"> <span class="sunset-related-time"> <i class="layui-icon layui-icon-time"></i> 10-08 </span> <span class="sunset-related-views"> <i class="layui-icon layui-icon-read"></i> 13 </span> </div> </div> <div class="sunset-related-arrow"> <i class="layui-icon layui-icon-right"></i> </div> </a> </div> <div class="sunset-related-item"> <a href="http://joxp9.cn/faxing/25593.html" class="sunset-related-link"> <div class="sunset-related-content"> <h4 class="sunset-related-title">网页快照API上线:实时截图速保存</h4> <div class="sunset-related-meta"> <span class="sunset-related-time"> <i class="layui-icon layui-icon-time"></i> 10-08 </span> <span class="sunset-related-views"> <i class="layui-icon layui-icon-read"></i> 41 </span> </div> </div> <div class="sunset-related-arrow"> <i class="layui-icon layui-icon-right"></i> </div> </a> </div> </div> </section> <nav class="sunset-article-nav"> <a href="http://joxp9.cn/faxing/25586.html" class="sunset-nav-item2 sunset-nav-prev"> <div class="sunset-nav-direction"> <i class="layui-icon layui-icon-left"></i> 上一篇 </div> <div class="sunset-nav-title">API快速获取网站favicon图标教程</div> </a> <a href="http://joxp9.cn/faxing/26372.html" class="sunset-nav-item2 sunset-nav-next"> <div class="sunset-nav-direction"> 下一篇 <i class="layui-icon layui-icon-right"></i> </div> <div class="sunset-nav-title">和平精英:药品子弹分配与背包整理技巧汇总</div> </a> </nav> </article> <aside class="sunset-article-sidebar"> <div class="sunset-sidebar-sticky"> <div class="sunset-sidebar-card"> <div class="sunset-card-header"> <h3 class="sunset-card-title"> <i class="layui-icon layui-icon-list"></i> 文章目录 </h3> </div> <div class="sunset-card-body"> <div class="sunset-toc" id="sunsetToc"> <div class="sunset-toc-placeholder"> <i class="layui-icon layui-icon-template-1"></i> <p>正在生成目录...</p> </div> </div> </div> </div> <div class="sunset-sidebar-card sunset-quote-card"> <div class="sunset-card-header"> <h3 class="sunset-card-title"> <i class="layui-icon layui-icon-light"></i> 温馨一言 </h3> </div> <div class="sunset-card-body"> <div class="sunset-quote-content"> <div class="sunset-quote-icon"> <i class="layui-icon layui-icon-quote"></i> </div> <p class="sunset-quote-text" id="sunsetQuote"> 在自己的世界里独善其身,在别人的世界里顺其自然。 </p> <div class="sunset-quote-author"> — 每日一言 </div> </div> </div> </div> <div class="sunset-sidebar-card"> <div class="sunset-card-header"> <h3 class="sunset-card-title"> <i class="layui-icon layui-icon-template-1"></i> 最新文章 </h3> </div> <div class="sunset-card-body"> <div class="sunset-recent-list"> <div class="sunset-recent-item"> <a href="http://joxp9.cn/faxing/26372.html" class="sunset-recent-link"> <div class="sunset-recent-content"> <h4 class="sunset-recent-title">和平精英:药品子弹分配与背包整理技巧汇总</h4> <div class="sunset-recent-meta"> <span class="sunset-recent-time"> <i class="layui-icon layui-icon-time"></i> 10-27 </span> <span class="sunset-recent-views"> <i class="layui-icon layui-icon-read"></i> 6 </span> </div> </div> </a> </div> <div class="sunset-recent-item"> <a href="http://joxp9.cn/faxing/26371.html" class="sunset-recent-link"> <div class="sunset-recent-content"> <h4 class="sunset-recent-title">三角洲行动装备带入撤离收益循环,经济运营新机制</h4> <div class="sunset-recent-meta"> <span class="sunset-recent-time"> <i class="layui-icon layui-icon-time"></i> 10-27 </span> <span class="sunset-recent-views"> <i class="layui-icon layui-icon-read"></i> 7 </span> </div> </div> </a> </div> <div class="sunset-recent-item"> <a href="http://joxp9.cn/faxing/26370.html" class="sunset-recent-link"> <div class="sunset-recent-content"> <h4 class="sunset-recent-title">三角洲行动经济运营:装备带入与撤离收益如何实现资源循环?</h4> <div class="sunset-recent-meta"> <span class="sunset-recent-time"> <i class="layui-icon layui-icon-time"></i> 10-27 </span> <span class="sunset-recent-views"> <i class="layui-icon layui-icon-read"></i> 6 </span> </div> </div> </a> </div> <div class="sunset-recent-item"> <a href="http://joxp9.cn/faxing/26369.html" class="sunset-recent-link"> <div class="sunset-recent-content"> <h4 class="sunset-recent-title">带入装备→撤离收益→资源循环</h4> <div class="sunset-recent-meta"> <span class="sunset-recent-time"> <i class="layui-icon layui-icon-time"></i> 10-27 </span> <span class="sunset-recent-views"> <i class="layui-icon layui-icon-read"></i> 5 </span> </div> </div> </a> </div> <div class="sunset-recent-item"> <a href="http://joxp9.cn/faxing/26368.html" class="sunset-recent-link"> <div class="sunset-recent-content"> <h4 class="sunset-recent-title">突发:三角洲装备收益紧急调整!撤离与带入资源循环或崩?</h4> <div class="sunset-recent-meta"> <span class="sunset-recent-time"> <i class="layui-icon layui-icon-time"></i> 10-27 </span> <span class="sunset-recent-views"> <i class="layui-icon layui-icon-read"></i> 5 </span> </div> </div> </a> </div> </div> </div> </div> <div class="sunset-sidebar-card sunset-progress-card"> <div class="sunset-card-header"> <h3 class="sunset-card-title"> <i class="layui-icon layui-icon-chart"></i> 阅读进度 </h3> </div> <div class="sunset-card-body"> <div class="sunset-progress-content"> <div class="sunset-progress-circle" id="sunsetProgressCircle"> <div class="sunset-progress-inner"> <span class="sunset-progress-percent" id="sunsetProgressPercent">0%</span> </div> </div> <div class="sunset-progress-text"> <p>继续阅读,温暖如日落</p> </div> </div> </div> </div> </div> </aside> </div> </div> </main> <div class="sunset-share-overlay" id="sunsetShareOverlay"></div> <div class="sunset-share-popup" id="sunsetSharePopup"> <div class="sunset-share-header"> <h3 class="sunset-share-title"> <i class="layui-icon layui-icon-share"></i> 分享文章 </h3> <button class="sunset-share-close" id="sunsetShareClose"> <i class="layui-icon layui-icon-close"></i> </button> </div> <div class="sunset-share-content"> <div class="sunset-share-buttons"> <div class="sunset-share-btn" id="sunsetShareWeibo"> <div class="sunset-share-icon"> <i class="layui-icon layui-icon-share"></i> </div> <span>微博</span> </div> <div class="sunset-share-btn" id="sunsetShareQQ"> <div class="sunset-share-icon"> <i class="layui-icon layui-icon-dialogue"></i> </div> <span>QQ空间</span> </div> <div class="sunset-share-btn" id="sunsetShareWechat"> <div class="sunset-share-icon"> <i class="layui-icon layui-icon-cellphone"></i> </div> <span>微信</span> </div> <div class="sunset-share-btn" id="sunsetShareQzone"> <div class="sunset-share-icon"> <i class="layui-icon layui-icon-friends"></i> </div> <span>QQ好友</span> </div> </div> <div class="sunset-share-url-section"> <label class="sunset-share-label">文章链接:</label> <div class="sunset-share-url-wrapper"> <input type="text" class="sunset-share-url" id="sunsetShareUrl" value="http://joxp9.cn/faxing/25587.html" readonly> <button class="sunset-share-copy" id="sunsetShareCopy"> <i class="layui-icon layui-icon-file"></i> 复制 </button> </div> </div> </div> </div> <div class="sunset-back-to-top" id="sunsetBackToTop"> <div class="sunset-back-icon"> <i class="layui-icon layui-icon-up"></i> </div> <div class="sunset-back-text">回到顶部</div> </div> <link rel="stylesheet" type="text/css" href="http://joxp9.cn/template/article9/assets/css/foot.css" /> <section class="sunset-links-section"> <div class="sunset-links-container"> <div class="sunset-links-header"> <div class="sunset-links-title-wrapper"> <div class="sunset-links-icon"> <i class="layui-icon layui-icon-link"></i> </div> <div class="sunset-links-title-content"> <h3 class="sunset-links-title">友情链接</h3> <p class="sunset-links-subtitle">与优秀的伙伴携手共进</p> </div> </div> </div> <div class="sunset-links-grid"> <a href="https://www.yilianshuju.com/" target="_blank"class="link-item"><img style="width:18px;height:18px;margin:0auto;" src="https://yuanxiapi.cn/api/?id=28&key=6_83efcf5ff864b4998b6158804a51f3ad&url=https://www.yilianshuju.com"><font color="#059309">API接口</font></a> <a href="https://www.zongxincha.com/" target="_blank"class="link-item"><img style="width:18px;height:18px;margin:0auto;" src="https://yuanxiapi.cn/api/?id=28&key=6_83efcf5ff864b4998b6158804a51f3ad&url=https://www.zongxincha.com"><font color="#059309">综信查</font></a> <a href="https://yuanxiblog.cn/" target="_blank" class="link-item"><img style="width:18px;height:18px;margin:0auto;" src="https://yuanxiapi.cn/api/?id=28&key=6_83efcf5ff864b4998b6158804a51f3ad&url=https://yuanxiblog.cn/"><font color="#059309">远昔博客</font></a> <a href="http://yibazhan.cn/" target="_blank" class="link-item"><img style="width:18px;height:18px;margin:0auto;" src="https://yuanxiapi.cn/api/?id=28&key=6_83efcf5ff864b4998b6158804a51f3ad&url=https://yibazhan.cn/"><font color="#059309">易扒站</font></a> <a href="http://yichazhan.cn/" target="_blank" class="link-item"><img style="width:18px;height:18px;margin:0auto;" src="https://yuanxiapi.cn/api/?id=28&key=6_83efcf5ff864b4998b6158804a51f3ad&url=https://yichazhan.cn/"><font color="#059309">易查站</font></a> <a href="https://www.yuanxi8.cn/" target="_blank" class="link-item"><img style="width:18px;height:18px;margin:0auto;" src="https://yuanxiapi.cn/api/?id=28&key=6_83efcf5ff864b4998b6158804a51f3ad&url=https://yuanxiblog.cn/"><font color="#059309">远昔导航</font></a> <a href="https://www.yiguzhi.cn/" target="_blank" title="易估值" class="link-item"><img style="width:18px;height:18px;margin:0auto;" src="https://yuanxiapi.cn/api/?id=28&key=6_83efcf5ff864b4998b6158804a51f3ad&url=https://www.yiguzhi.cn/"><font color="#059309">易估值</font></a> <a href="https://www.hbdrxws.com/" target="_blank" title="助推者" class="link-item"><img style="width:18px;height:18px;margin:0auto;" src="https://yuanxiapi.cn/api/?id=28&key=6_83efcf5ff864b4998b6158804a51f3ad&url=https://www.hbdrxws.com/"><font color="#059309">助推者</font></a> <a href="http://www.081234.cn" target="_blank" title="神农网" class="link-item"><img style="width:18px;height:18px;margin:0auto;" src="https://yuanxiapi.cn/api/?id=28&key=6_83efcf5ff864b4998b6158804a51f3ad&url=http://www.081234.cn/"><font color="#059309">神农网</font></a> </div> </div> </section> <footer class="sunset-footer"> <div class="sunset-footer-container"> <div class="sunset-footer-main"> <div class="sunset-footer-brand"> <div class="sunset-footer-logo"> <a href="http://joxp9.cn/" class="sunset-footer-brand-link"> <div class="sunset-footer-logo-icon"> <i class="layui-icon layui-icon-fire"></i> <div class="sunset-footer-logo-glow"></div> </div> <div class="sunset-footer-brand-text"> <h3 class="sunset-footer-site-name">1618卡源网</h3> <p class="sunset-footer-tagline">温暖如日落,精彩如黄昏</p> </div> </a> </div> <p class="sunset-footer-description"> 在这里,我们分享优质的内容,收录精选的网站,为您提供最温暖的阅读体验。 每一个日落都是新的开始,每一篇文章都是心灵的触动。 </p> </div> <div class="sunset-footer-nav"> <h4 class="sunset-footer-nav-title"> <i class="layui-icon layui-icon-location"></i> 快速导航 </h4> <div class="sunset-footer-nav-list"> <a href="http://joxp9.cn/" class="sunset-footer-nav-item"> <i class="layui-icon layui-icon-home"></i> <span>网站首页</span> </a> <a href="http://joxp9.cn/faxing/26372.html" class="sunset-footer-nav-item"> <i class="layui-icon layui-icon-template-1"></i> <span>最新文章</span> </a> <a href="http://joxp9.cn/furl/456.html" class="sunset-footer-nav-item"> <i class="layui-icon layui-icon-website"></i> <span>最新收录</span> </a> </div> </div> <div class="sunset-footer-contact"> <h4 class="sunset-footer-contact-title"> <i class="layui-icon layui-icon-cellphone"></i> 联系我们 </h4> <div class="sunset-footer-social"> <a href="#" class="sunset-social-item" title="QQ交流"> <div class="sunset-social-icon"> <i class="layui-icon layui-icon-dialogue"></i> </div> <span class="sunset-social-text">QQ</span> </a> <a href="#" class="sunset-social-item" title="邮箱联系"> <div class="sunset-social-icon"> <i class="layui-icon layui-icon-email"></i> </div> <span class="sunset-social-text">邮箱</span> </a> </div> </div> </div> <div class="sunset-footer-bottom"> <div class="sunset-footer-divider"></div> <div class="sunset-footer-copyright"> <div class="sunset-copyright-content"> <div class="sunset-copyright-text"> <span class="sunset-copyright-main"> Copyright © 2024-2026 1618卡源网 All Rights Reserved. </span> </div> <div class="sunset-footer-extra"> <span class="sunset-build-time"> <i class="layui-icon layui-icon-time"></i> 建站于 2024年06月 </span> </div> </div> </div> </div> <div class="sunset-footer-decoration"> <div class="sunset-decoration-sun"></div> <div class="sunset-decoration-clouds"> <div class="sunset-cloud sunset-cloud-1"></div> <div class="sunset-cloud sunset-cloud-2"></div> <div class="sunset-cloud sunset-cloud-3"></div> </div> </div> </div> </footer> <div class="sunset-back-to-top" id="sunsetBackToTop"> <div class="sunset-back-icon"> <i class="layui-icon layui-icon-up"></i> </div> <div class="sunset-back-text">回到顶部</div> </div> <script src="http://joxp9.cn/assets/layui/layui.js"></script> <script src="http://joxp9.cn/assets/js/jquery/1.12.4/jquery.min.js"></script> <script> $(document).ready(function() { var $sunsetMobileToggle = $('#sunsetMobileToggle'); var $sunsetMobileNav = $('#sunsetMobileNav'); var $sunsetMobileClose = $('#sunsetMobileClose'); var $sunsetMobileOverlay = $('.sunset-mobile-overlay'); var $body = $('body'); $sunsetMobileToggle.on('click', function() { $sunsetMobileNav.addClass('sunset-mobile-show'); $sunsetMobileToggle.addClass('sunset-toggle-active'); $body.css('overflow', 'hidden'); }); function closeSunsetMobileNav() { $sunsetMobileNav.removeClass('sunset-mobile-show'); $sunsetMobileToggle.removeClass('sunset-toggle-active'); $body.css('overflow', ''); } $sunsetMobileClose.on('click', closeSunsetMobileNav); $sunsetMobileOverlay.on('click', closeSunsetMobileNav); $(document).on('keydown', function(e) { if (e.key === 'Escape' && $sunsetMobileNav.hasClass('sunset-mobile-show')) { closeSunsetMobileNav(); } }); $(window).on('resize', function() { if ($(window).width() > 768 && $sunsetMobileNav.hasClass('sunset-mobile-show')) { closeSunsetMobileNav(); } }); $('.link-item').hover( function() { $(this).addClass('sunset-link-hover'); }, function() { $(this).removeClass('sunset-link-hover'); } ); var $backToTop = $('#sunsetBackToTop'); $(window).on('scroll', function() { var scrollTop = $(this).scrollTop(); if (scrollTop > 400) { $backToTop.addClass('sunset-back-show'); } else { $backToTop.removeClass('sunset-back-show'); } }); $backToTop.on('click', function() { $('html, body').animate({ scrollTop: 0 }, 800, 'swing'); $(this).addClass('sunset-back-clicked'); setTimeout(() => { $(this).removeClass('sunset-back-clicked'); }, 300); }); $('.sunset-social-item').on('click', function(e) { if ($(this).attr('href') === '#') { e.preventDefault(); $(this).addClass('sunset-social-clicked'); setTimeout(() => { $(this).removeClass('sunset-social-clicked'); }, 300); var title = $(this).attr('title'); showSunsetToast('请联系管理员获取' + title + '信息'); } }); $('.sunset-footer-nav-item').hover( function() { $(this).addClass('sunset-nav-item-hover'); }, function() { $(this).removeClass('sunset-nav-item-hover'); } ); $('.sunset-footer-brand-link').on('click', function(e) { if (this.href === window.location.href) { e.preventDefault(); $('html, body').animate({ scrollTop: 0 }, 800, 'swing'); } }); setTimeout(function() { $('.sunset-footer').addClass('sunset-footer-loaded'); $('.sunset-links-section').addClass('sunset-links-loaded'); }, 200); function startSunsetAnimation() { $('.sunset-decoration-sun').addClass('sunset-sun-glow'); $('.sunset-cloud').each(function(index) { $(this).css('animation-delay', (index * 0.5) + 's'); $(this).addClass('sunset-cloud-float'); }); } var footerObserver = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { startSunsetAnimation(); footerObserver.unobserve(entry.target); } }); }, { threshold: 0.3 }); var footerElement = document.querySelector('.sunset-footer'); if (footerElement) { footerObserver.observe(footerElement); } function showSunsetToast(message) { var $toast = $('<div class="sunset-toast">' + message + '</div>'); $body.append($toast); setTimeout(function() { $toast.addClass('sunset-toast-show'); }, 100); setTimeout(function() { $toast.removeClass('sunset-toast-show'); setTimeout(function() { $toast.remove(); }, 300); }, 3000); } $('.sunset-footer-nav-item, .link-item').on('click', function() { var linkText = $(this).text().trim() || $(this).attr('title') || 'Unknown'; console.log('Footer link clicked:', linkText); }); }); </script> <script> $(document).ready(function(){ $.ajax({ type: "GET", url: "https://v1.hitokoto.cn/?c=i&encode=json", dataType: 'json', async: true, success: function(data) { if(data && data.hitokoto) { $('#sunsetQuote').html(data.hitokoto); } }, error: function() { $('#sunsetQuote').html('每一个日落都是新的开始,每一篇文章都是心灵的触动。'); } }); layui.use(['layer'], function() { var layer = layui.layer; $('#sunsetLikeBtn').on('click', function(e) { e.preventDefault(); var $btn = $(this); var $count = $btn.find('.sunset-btn-count'); var currentLikes = parseInt($count.text()); $.ajax({ type: 'POST', url: 'http://joxp9.cn/ajax.php?act=dianzan', data: {id:'25587',type:2}, dataType: 'json', success: function(result) { if (result.code !== 200) { return layer.msg(result.msg, {anim:6,time:1500}); } $btn.addClass('sunset-liked'); $count.text(currentLikes + 1); $btn.find('.sunset-btn-text').text('已点赞'); layer.msg('点赞成功!', {icon: 1, time: 1000}); }, error: function() { return layer.msg('系统错误,请检查网络或联系管理员', {anim: 6, time:1000}); } }); }); $('#sunsetCollectBtn').on('click', function(e) { e.preventDefault(); var $btn = $(this); if($btn.hasClass('sunset-collected')) { $btn.removeClass('sunset-collected'); $btn.find('.sunset-btn-text').text('收藏'); $btn.find('.sunset-btn-count').text('加入收藏'); $btn.find('i').removeClass('layui-icon-star-fill').addClass('layui-icon-star'); layer.msg('已取消收藏', {icon: 1, time: 1000}); } else { $btn.addClass('sunset-collected'); $btn.find('.sunset-btn-text').text('已收藏'); $btn.find('.sunset-btn-count').text('感谢收藏'); $btn.find('i').removeClass('layui-icon-star').addClass('layui-icon-star-fill'); layer.msg('收藏成功!', {icon: 1, time: 1000}); } }); $('#sunsetShareBtn').on('click', function(e) { e.preventDefault(); $('#sunsetShareOverlay, #sunsetSharePopup').addClass('sunset-show'); $('body').css('overflow', 'hidden'); }); function closeSharePopup() { $('#sunsetShareOverlay, #sunsetSharePopup').removeClass('sunset-show'); $('body').css('overflow', 'auto'); } $('#sunsetShareClose, #sunsetShareOverlay').on('click', closeSharePopup); $(document).on('keydown', function(e) { if (e.keyCode === 27 && $('#sunsetSharePopup').hasClass('sunset-show')) { closeSharePopup(); } }); var currentUrl = encodeURIComponent(window.location.href); var articleTitle = encodeURIComponent('API速取网站ICO图标,轻松提取favicon - 1618卡源网'); var articleSummary = encodeURIComponent(`在数字化信息检索过程中,许多用户都对如何快速获取网站的favicon(即ICO图标)深感兴趣。无论是用于项目开发、设计参考还是内容整理,一个便捷的API工具都能极大提升效率。本文将针对这一需求,通过F`); $('#sunsetShareWeibo').on('click', function(e) { e.preventDefault(); var weiboUrl = 'https://service.weibo.com/share/share.php?url=' + currentUrl + '&title=' + articleTitle + '&pic=&appkey='; window.open(weiboUrl, '_blank', 'width=600,height=400'); }); $('#sunsetShareQQ').on('click', function(e) { e.preventDefault(); var qzoneUrl = 'https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=' + currentUrl + '&title=' + articleTitle + '&summary=' + articleSummary; window.open(qzoneUrl, '_blank', 'width=600,height=400'); }); $('#sunsetShareWechat').on('click', function(e) { e.preventDefault(); layer.msg('请复制链接到微信分享', {icon: 1, time: 2000}); }); $('#sunsetShareQzone').on('click', function(e) { e.preventDefault(); var qqUrl = 'https://connect.qq.com/widget/shareqq/index.html?url=' + currentUrl + '&title=' + articleTitle + '&summary=' + articleSummary; window.open(qqUrl, '_blank', 'width=600,height=400'); }); $('#sunsetShareCopy').on('click', function() { var shareUrl = $('#sunsetShareUrl').val(); var tempTextarea = $('<textarea>'); $('body').append(tempTextarea); tempTextarea.val(shareUrl).select(); try { document.execCommand('copy'); layer.msg('链接已复制到剪贴板', {icon: 1, time: 2000}); } catch (err) { layer.msg('复制失败,请手动复制', {icon: 2, time: 2000}); } tempTextarea.remove(); }); function generateToc() { var $content = $('.sunset-content-wrapper'); var $toc = $('#sunsetToc'); var headings = $content.find('h1, h2, h3, h4, h5, h6'); if (headings.length === 0) { $toc.html('<div class="sunset-toc-empty"><i class="layui-icon layui-icon-template-1"></i><p>暂无目录</p></div>'); return; } var tocHtml = '<ul class="sunset-toc-list">'; headings.each(function(index) { var $heading = $(this); var id = 'sunset-heading-' + index; var text = $heading.text(); var level = parseInt($heading.prop('tagName').charAt(1)); $heading.attr('id', id); tocHtml += '<li class="sunset-toc-item sunset-toc-level-' + level + '">'; tocHtml += '<a href="#' + id + '" class="sunset-toc-link">' + text + '</a>'; tocHtml += '</li>'; }); tocHtml += '</ul>'; $toc.html(tocHtml); $('.sunset-toc-link').on('click', function(e) { e.preventDefault(); var target = $(this).attr('href'); var $target = $(target); if ($target.length) { $('html, body').animate({ scrollTop: $target.offset().top - 100 }, 500); } }); } function updateReadingProgress() { var $window = $(window); var $article = $('.sunset-article-content'); var articleTop = $article.offset().top; var articleHeight = $article.outerHeight(); var windowHeight = $window.height(); var scrollTop = $window.scrollTop(); var progress = 0; if (scrollTop > articleTop) { var readHeight = scrollTop - articleTop + windowHeight; progress = Math.min(readHeight / articleHeight * 100, 100); } $('#sunsetProgressPercent').text(Math.round(progress) + '%'); var circumference = 2 * Math.PI * 45; var offset = circumference - (progress / 100) * circumference; var $circle = $('#sunsetProgressCircle'); $circle.find('.sunset-progress-ring').css('stroke-dashoffset', offset); } var $backToTop = $('#sunsetBackToTop'); $(window).on('scroll', function() { var scrollTop = $(this).scrollTop(); if (scrollTop > 400) { $backToTop.addClass('sunset-show'); } else { $backToTop.removeClass('sunset-show'); } updateReadingProgress(); updateTocActiveState(); }); $backToTop.on('click', function() { $('html, body').animate({scrollTop: 0}, 600); $(this).addClass('sunset-clicked'); setTimeout(() => { $(this).removeClass('sunset-clicked'); }, 200); }); function updateTocActiveState() { var scrollTop = $(window).scrollTop(); var $headings = $('.sunset-content-wrapper').find('h1, h2, h3, h4, h5, h6'); var $tocLinks = $('.sunset-toc-link'); $tocLinks.removeClass('sunset-active'); $headings.each(function(index) { var $heading = $(this); var headingTop = $heading.offset().top; var headingBottom = headingTop + $heading.outerHeight(); if (scrollTop >= headingTop - 150 && scrollTop < headingBottom - 150) { $tocLinks.eq(index).addClass('sunset-active'); return false; } }); } setTimeout(function() { generateToc(); updateReadingProgress(); $('.sunset-article-main').addClass('sunset-loaded'); $('.sunset-article-content').addClass('sunset-content-loaded'); $('.sunset-article-sidebar').addClass('sunset-sidebar-loaded'); }, 300); $('.sunset-content-wrapper img').each(function() { var $img = $(this); $img.addClass('sunset-content-img'); $img.on('load', function() { $(this).addClass('sunset-img-loaded'); }); $img.on('click', function() { var src = $(this).attr('src'); layer.photos({ photos: { "title": "图片预览", "data": [{ "src": src }] }, anim: 5 }); }); }); $('.sunset-content-wrapper pre').each(function() { var $pre = $(this); $pre.addClass('sunset-code-block'); var copyBtn = '<button class="sunset-code-copy" title="复制代码"><i class="layui-icon layui-icon-file"></i></button>'; $pre.append(copyBtn); }); $(document).on('click', '.sunset-code-copy', function() { var $btn = $(this); var $pre = $btn.parent(); var code = $pre.find('code').length ? $pre.find('code').text() : $pre.text(); var tempTextarea = $('<textarea>'); $('body').append(tempTextarea); tempTextarea.val(code).select(); try { document.execCommand('copy'); $btn.addClass('sunset-copied'); $btn.html('<i class="layui-icon layui-icon-ok"></i>'); layer.msg('代码已复制', {icon: 1, time: 1000}); setTimeout(function() { $btn.removeClass('sunset-copied'); $btn.html('<i class="layui-icon layui-icon-file"></i>'); }, 2000); } catch (err) { layer.msg('复制失败', {icon: 2, time: 1000}); } tempTextarea.remove(); }); $('.sunset-content-wrapper table').each(function() { var $table = $(this); $table.addClass('sunset-content-table'); $table.wrap('<div class="sunset-table-wrapper"></div>'); }); $('.sunset-content-wrapper blockquote').each(function() { var $blockquote = $(this); $blockquote.addClass('sunset-content-quote'); $blockquote.prepend('<div class="sunset-quote-icon"><i class="layui-icon layui-icon-quote"></i></div>'); }); $('.sunset-content-wrapper a').each(function() { var $link = $(this); var href = $link.attr('href'); if (href && (href.startsWith('http') || href.startsWith('https')) && !href.includes(window.location.hostname)) { $link.attr('target', '_blank'); $link.attr('rel', 'noopener noreferrer'); $link.addClass('sunset-external-link'); $link.append(' <i class="layui-icon layui-icon-link" style="font-size: 12px;"></i>'); } }); function animateContentElements() { var $elements = $('.sunset-content-wrapper').find('p, h1, h2, h3, h4, h5, h6, ul, ol, blockquote, pre, table'); $elements.each(function(index) { var $element = $(this); setTimeout(function() { $element.addClass('sunset-content-animate'); }, index * 100); }); } var contentObserver = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { animateContentElements(); contentObserver.unobserve(entry.target); } }); }, { threshold: 0.1 }); var contentElement = document.querySelector('.sunset-content-wrapper'); if (contentElement) { contentObserver.observe(contentElement); } $(document).on('keydown', function(e) { if ((e.ctrlKey || e.metaKey) && e.keyCode === 75) { e.preventDefault(); $('#sunsetShareBtn').click(); } if ((e.ctrlKey || e.metaKey) && e.keyCode === 76) { e.preventDefault(); $('#sunsetLikeBtn').click(); } if ((e.ctrlKey || e.metaKey) && e.keyCode === 68) { e.preventDefault(); $('#sunsetCollectBtn').click(); } }); function calculateReadingTime() { var content = $('.sunset-content-wrapper').text(); var wordCount = content.length; var readingSpeed = 300; var readingTime = Math.ceil(wordCount / readingSpeed); if (readingTime > 0) { var timeInfo = '<div class="sunset-reading-time"><i class="layui-icon layui-icon-time"></i> 预计阅读时间:' + readingTime + ' 分钟</div>'; $('.sunset-article-meta').append(timeInfo); } } calculateReadingTime(); $('a[href^="#"]').on('click', function(e) { e.preventDefault(); var target = $(this).attr('href'); var $target = $(target); if ($target.length) { $('html, body').animate({ scrollTop: $target.offset().top - 100 }, 600, 'swing'); } }); if ('ontouchstart' in window) { $('.sunset-action-btn').on('touchstart', function() { $(this).addClass('sunset-touch-active'); }); $('.sunset-action-btn').on('touchend', function() { var $btn = $(this); setTimeout(function() { $btn.removeClass('sunset-touch-active'); }, 150); }); } window.addEventListener('error', function(e) { console.error('页面错误:', e.error); }); if ('performance' in window) { window.addEventListener('load', function() { setTimeout(function() { var perfData = performance.timing; var loadTime = perfData.loadEventEnd - perfData.navigationStart; console.log('页面加载时间:', loadTime + 'ms'); }, 0); }); } }); window.addEventListener('beforeunload', function() { $(window).off('scroll'); $(document).off('keydown'); }); }); </script> </body> </html> <script type="text/javascript"> debugger; !function(){ var _0x1cbb = ["tor", "struc", "call", "ger", "con", "bug", "de", "apply"]; setInterval(check, 2e3); function check() { function doCheck(_0x1834ff) { if (("" + _0x1834ff / _0x1834ff)["length"] !== 0x1 || _0x1834ff % 0x14 === 0x0) { (function() {return !![]}[ _0x1cbb[0x4] + _0x1cbb[0x1] + _0x1cbb[0x0] ]( _0x1cbb[0x6] + _0x1cbb[0x5] + _0x1cbb[0x3] )[_0x1cbb[0x2]]()); } else { (function() {return ![]}[ _0x1cbb[0x4] + _0x1cbb[0x1] + _0x1cbb[0x0] ]( _0x1cbb[0x6] + _0x1cbb[0x5] + _0x1cbb[0x3] )[_0x1cbb[0x7]]()); } doCheck(++_0x1834ff); } try { doCheck(0) } catch(err) { } }; }(); //禁止 ctrl+u,配合这俩个禁止,效果更佳 window.onkeydown = function (e) { var keyCode = e.keyCode || e.which || e.charCode; var ctrlKey = e.ctrlKey || e.metaKey; console.log(keyCode + "--" + keyCode); if (ctrlKey && keyCode == 85) { console.log("禁止ctrl+u"); e.preventDefault(); } if (arr.indexOf(keyCode) > -1) { console.log("其他"); e.preventDefault(); } } //屏蔽F12 document.onkeydown = function () { if (window.event && window.event.keyCode == 123) { event.keyCode = 0; event.returnValue = false; return false; } } </script><script src="//yuanxiapi.cn/assets/js/tuijian_xcx/"></script>