You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发浏览器扩展:从前端URL提取文件名并在CMS中打开

实现前端图片右键跳转CMS编辑的浏览器扩展方案

嘿,这个需求我之前帮团队做过类似的工具,刚好可以给你分享一套可行的实现思路和代码参考:

需求拆解

咱们的核心目标就是打通前端图片到CMS编辑的快捷路径:

  • 给页面上的图片添加专属右键菜单「在CMS中打开」
  • 从图片URL里精准提取完整文件名(含扩展名)
  • 自动跳转到CMS的对应页面,用文件名定位到目标图片并打开编辑界面

具体实现(以Chrome扩展为例)

Chrome生态的扩展开发成本低,适配性也不错,咱们就以它为例:

1. 编写扩展清单文件(manifest.json)

首先得配置扩展的基础信息和需要的权限:

{
  "manifest_version": 3,
  "name": "CMS图片快捷编辑",
  "version": "1.0",
  "description": "右键点击图片直接在CMS中打开编辑",
  "permissions": ["contextMenus", "activeTab"],
  "background": {
    "service_worker": "background.js"
  },
  "icons": {
    "16": "icon16.png",
    "48": "icon48.png",
    "128": "icon128.png"
  }
}

注意:manifest_version用3是目前的标准,图标文件可以自己准备几个尺寸的占位图就行。

2. 创建右键菜单(background.js)

在后台脚本里创建只针对图片的右键菜单:

// 扩展加载时创建右键菜单
chrome.runtime.onInstalled.addListener(() => {
  chrome.contextMenus.create({
    id: "openInCMS",
    title: "在CMS中打开",
    contexts: ["image"] // 只在图片上显示这个菜单
  });
});

3. 处理菜单点击事件,完成跳转

还是在background.js里,监听菜单点击,提取文件名并跳转:

chrome.contextMenus.onClicked.addListener((info, tab) => {
  if (info.menuItemId === "openInCMS") {
    // 从图片URL中提取文件名
    const imageUrl = info.srcUrl;
    let filename = imageUrl.split('/').pop();
    // 处理带参数的URL(比如product.jpg?v=123)
    filename = filename.split('?')[0];
    
    // 替换成你的CMS搜索/编辑页面URL,这里假设CMS通过filename参数搜索
    const cmsEditUrl = `https://your-cms-domain.com/image-editor?search=${encodeURIComponent(filename)}`;
    
    // 在新标签页打开CMS页面
    chrome.tabs.create({ url: cmsEditUrl });
  }
});

关键细节提示

  • 特殊URL处理:如果你的图片URL有哈希值或者复杂参数,记得调整文件名提取逻辑,确保拿到纯净的文件名
  • CMS适配:如果你的CMS不是通过URL参数搜索,而是需要调用内部接口,可借助chrome.scripting向CMS页面注入脚本自动触发搜索
  • 鉴权问题:确保CMS和前端页面共享会话(比如同域Cookie),不然跳转后可能需要重新登录

内容的提问来源于stack exchange,提问作者Mikklos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:07:50