海南航空 PLUS 会员权益卡提供了大量免费航线,但官方页面缺少搜索和筛选功能,查找航线非常不便。本脚本为该页面添加了强大的搜索工具,让你轻松规划旅行路线!
- 🔍 出发地查询 - 查看从指定城市/省份出发的所有航线
- 🎯 目的地查询 - 查看飞往指定城市/省份的所有航班
- 🔄 智能环线规划 - 自动规划往返环线路线(A→B→C→A)
- 📊 增量显示结果 - 环线搜索实时显示,可随时停止
- 🗺️ 支持省份查询 - 输入省份名称,自动查询所有地级市
- 🎨 美观界面 - 现代化 UI 设计,响应式布局
- 🔔 自动更新检查 - 及时提醒新版本发布
- 💬 一键反馈 - 快速向开发者反馈问题
需要先安装浏览器扩展管理器(任选其一):
| 浏览器 | 推荐扩展 | 下载链接 |
|---|---|---|
| Chrome / Edge | Tampermonkey | Chrome 商店 |
| Firefox | Tampermonkey / Greasemonkey | Firefox 商店 |
| Safari | Tampermonkey | App Store |
方式一:直接安装(推荐)
点击下方链接,Tampermonkey 会自动识别并安装:
👉 点击安装脚本
方式二:Greasy Fork 安装
访问 Greasy Fork 页面安装(如果可用):
方式三:手动安装
- 打开 Tampermonkey 管理面板
- 点击「新建脚本」
- 将 script.user.js 的全部内容复制粘贴
- 保存(Ctrl+S)
查找从某个城市或省份出发的所有航班。
示例:
查询方式:出发地查询
输入城市:深圳
效果: 显示所有从深圳出发的航班列表(包含航班号、目的地、起飞时间等)
支持省份查询:
输入城市:广东
自动查询广东省所有地级市(广州、深圳、珠海...)的出发航班
反向查询:找到所有飞往某城市/省份的航班。
示例:
查询方式:目的地查询
输入城市:三亚
效果: 显示所有飞往三亚的航班(从哪些城市可以飞到三亚)
自动规划往返闭环路线,适合需要多次中转的旅行。
什么是环线?
环线指从 A 城市出发,经过 B、C 城市,最终返回 A 城市的闭环路线。
例如:深圳 → 海口 → 三亚 → 深圳
使用方法:
- 选择「环线规划」模式
- 输入起始城市(如:深圳)
- 点击「搜索」
- 脚本会自动计算所有可行的环线方案
界面说明:
- 结果按第二站城市分组显示
- 点击城市按钮查看完整路线详情
- 显示每段航班的时刻、班期等信息
- 实时显示搜索进度,可随时停止
实际案例:
假设你在深圳,想去海南玩几天:
环线规划:深圳
可能找到的路线:
- ✅ 深圳 → 海口 → 三亚 → 深圳
- ✅ 深圳 → 三亚 → 海口 → 深圳
每条路线都会显示具体航班信息,方便你选择合适的时间。
| 场景 | 推荐功能 |
|---|---|
| 📍 想知道从家乡能飞哪些地方 | 出发地查询 |
| 🏖️ 计划去某地旅游,查看可从哪里出发 | 目的地查询 |
| 🌏 想玩多个城市,规划最优路线 | 环线规划 |
| 🏝️ 海南双城游(海口+三亚) | 环线规划 |
| 📅 薅羊毛:用尽 PLUS 卡的 12 次权益 | 环线规划 |
脚本会自动检查更新(24小时一次),发现新版本会弹窗提示:
- 普通更新:可选择「立即更新」或「稍后提醒」
- 重要更新:强烈建议立即安装,10秒后自动跳转下载页
页面右下角有「💬」浮动按钮,点击可快速反馈问题:
- 自动收集环境信息(版本、浏览器、页面 URL)
- 跳转到 GitHub Issues 页面
- 开发者会及时响应
// @name 海南航空-海航PLUS航线搜索增强
// @namespace https://itrip.cc/
// @version 0.1.0
// @match https://m.hnair.com/cms/me/plus/info/202508/t20250808_78914.html*
// @grant none
// @run-at document-end环线搜索算法:
使用深度优先搜索(DFS)+ 生成器(Generator)实现增量搜索:
- 构建城市间的航线图(邻接表)
- 从起点开始 DFS 遍历
- 每找到一条可返回起点的路线,立即
yield返回 - 前端实时渲染结果,用户可随时停止搜索
优势:
- ⚡ 不阻塞主线程,用户体验流畅
- 💾 内存占用低,适合大量航线数据
- 🛑 支持中途停止,节省计算资源
航班对象:
{
flightNo: "HU7123", // 航班号
departure: "深圳", // 出发地
arrival: "海口", // 目的地
departureTime: "08:00", // 起飞时刻
schedule: "1357", // 班期(周一三五七)
product: "经济舱" // 产品类型
}省份-城市映射:
- 覆盖全国 34 个省级行政区
- 包含所有地级市和重点县级市
- 支持直辖市、特别行政区
| 指标 | 数值 |
|---|---|
| 脚本大小 | ~35 KB |
| 初始化时间 | < 100ms |
| 环线搜索速度 | ~500 routes/s |
| 内存占用 | < 5 MB |
| 兼容性 | Chrome 90+, Firefox 88+, Edge 90+ |
欢迎提交 Issue 和 Pull Request!
# 克隆仓库
git clone https://github.com/CreatorEdition/hna-plus.git
# 安装依赖(如果有)
cd hna-plus
npm install
# 在 Tampermonkey 中启用开发模式
# 1. 打开 Tampermonkey 设置
# 2. 启用「配置模式」为「高级」
# 3. 勾选「允许访问文件 URL」- 使用 ES6+ 语法
- 遵循 JavaScript Standard Style
- 函数添加 JSDoc 注释
- 提交信息使用 Conventional Commits
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'feat: Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 发起 Pull Request
🎉 首次发布
- ✨ 实现出发地/目的地查询功能
- ✨ 实现智能环线规划算法
- ✨ 支持省份级别查询
- ✨ 添加自动更新检查机制
- ✨ 添加一键反馈功能
- 🎨 美化 UI 界面
A: 请检查:
- 是否在正确的页面(https://m.hnair.com/cms/me/plus/info/...)
- Tampermonkey 是否已启用
- 脚本是否已启用(点击 Tampermonkey 图标查看)
- 刷新页面重试
A:
- 环线搜索需要遍历所有可能路径,航线越多越耗时
- 可以随时点击「停止搜索」按钮中断
- 建议选择航线较多的城市(如北京、上海)作为起点
A: 支持所有主流浏览器:
- ✅ Chrome / Edge(推荐)
- ✅ Firefox
- ✅ Safari
- ✅ Opera
⚠️ 不支持 IE
A: 脚本直接从当前页面的航班表格中解析数据,不发送任何网络请求,完全本地运行。
A:
- ❌ 不收集任何个人信息
- ❌ 不发送数据到外部服务器
- ✅ 仅本地存储搜索历史(localStorage)
- ✅ 更新检查仅发送版本号
本项目采用 MIT License 开源协议。
MIT License
Copyright (c) 2025 Orrin
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software...
如果这个项目对你有帮助,欢迎:
- ⭐ 给项目点个 Star
- 🐛 报告 Bug 或提出建议
- 📢 分享给更多人
- ☕ 请我喝杯咖啡(可选)
- 作者: Orrin
- 主页: https://itrip.cc/
- GitHub: CreatorEdition/hna-plus
- Issues: 提交问题
- 感谢海南航空提供 PLUS 会员权益
- 感谢 Tampermonkey 提供强大的脚本管理工具
- 感谢所有使用者的反馈和建议
⚡ 让旅行规划更简单 ⚡
Made with ❤️ by Orrin