Chrome扩展程序将所有链接替换为略微修改的版本

Chrome Extension to replace all links with slightly modified versions of themselves

本文关键字:修改 版本 替换 链接 程序 扩展 Chrome      更新时间:2023-09-26

所以我是编写chrome扩展程序的新手。到目前为止,我有一些非常简单的js作为我的content_script.js:

var links = document.getElementsByTagName("a");
for(var i=0;i<links.length;i++){
    links[i].href = links[i].href.replace((www'.)?imgur.com'/gallery'/, i'.imgur'.com'/);
}

和我的清单.json:

{
  "manifest_version": 2,
  "name": "Degallerify",
  "description": "This extension will convert all instances of imgur.com/gallery/ links to direct links",
  "version": "1.0",
  "browser_action": {
   "default_icon": "icon.png"
  },
  "permissions": [
   "http://*/*","https://*/*"
   ],
   "content_scripts": [
  {
    "matches": [
      "http://*/*","https://*/*"
    ],
    "js": ["content_script.js"]
  }
]
}

前提很简单,只需将所有 imgur.com/gallery/链接替换为直接图像链接即可。我用在线正则表达式比较检查了正则表达式,它完美匹配。

但是,当我加载扩展时,它不会执行任何操作。

这是包含图库链接的页面示例

当我加载扩展并刷新页面时,所有链接都保留为图库链接。我的正则表达式不正确吗?我需要为 JS 做一些不同的事情吗?

谢谢!

i 没有连接到替换字符串,替换字符串没有用引号括起来; ./不需要逃逸。尝试将i连接到替换字符串,删除./字符的转义,并用引号括起来。

links[i].href = links[i].href.replace((www'.)?imgur.com'/gallery'/
                , i + ".imgur.com");