所以我是编写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\/);
}


和我的manifest.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/链接替换为直接图像链接即可。我通过在线正则表达式比较检查了正则表达式,它非常匹配。

但是,当我加载扩展程序时,它什么也没做。

This is an example of a page with gallery links

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

谢谢!

最佳答案

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

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

关于javascript - Chrome扩展程序将所有链接替换为自身的略微修改版本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36962067/

10-13 07:45
查看更多