导航页现在会自动检测浏览历史插件是否已安装: - 扩展在用户配置的服务地址上动态注册 content script (Chrome: chrome.scripting.registerContentScripts, Firefox: browser.contentScripts.register), 于 document_start 给 <html> 打上 data-navi-ext 标记, 不在其他站点运行。 - history-server 始终把「安装浏览历史插件」放在「历史访问」第一条 (入口 url=/extension/install.html),启动时也会重建一次, 不再需要等下一次同步。 - web/navi.js 读到标记后隐藏该入口(连 .item-wrapper 一起隐藏, 避免留下空网格位)。 - 新增 /extension/install.html:自动识别浏览器,给出对应安装包与步骤; 支持在 data 卷放 extension-store.json 配置商店链接, 有商店链接时显示真正的「一键安装」。 - 段落名匹配同时兼容中英文(常用服务/Favorites、历史访问/History), 修掉了公开示例 conf.yml 用英文名时重建逻辑完全失效的问题。 - 扩展升到 1.1.0(新增 scripting 权限与 detect.js)。 Note: Chrome/Edge 不允许从网站直接安装非商店扩展, 因此自托管场景下只能下载后手动加载;发布到商店后才会出现一键安装。
21 lines
833 B
JavaScript
21 lines
833 B
JavaScript
// JianF Nav Sync — 检测标记(content script)
|
||
//
|
||
// 由 background 通过 browser.contentScripts.register 动态注册到
|
||
// 「用户在设置里填写的导航站」上,不会在其他网站上运行。
|
||
//
|
||
// 唯一职责:在 document_start 阶段给 <html> 打上 data-navi-ext 属性。
|
||
// 导航站的 /navi.js 读到该属性就隐藏「安装浏览历史插件」入口。
|
||
'use strict';
|
||
|
||
try {
|
||
let version = '1';
|
||
try {
|
||
if (typeof chrome !== 'undefined' && chrome.runtime && chrome.runtime.getManifest) {
|
||
version = chrome.runtime.getManifest().version || version;
|
||
}
|
||
} catch (e) { /* 忽略:版本号只用于展示 */ }
|
||
document.documentElement.setAttribute('data-navi-ext', version);
|
||
} catch (e) {
|
||
/* document_start 下 documentElement 一定存在;出错也只是少一个标记 */
|
||
}
|