Chrome 扩展程序开发以更改网页中的锚点的问题



我正在尝试构建一个Chrome扩展程序,该扩展程序检查用户当前查看的页面的所有链接,并检查该链接的目标,如果它是"http://www.youtube.com",那么扩展程序会将其更改为"https://www.youtube.com"

但是我的扩展程序不起作用!!

这是我的清单.json

{
  "name": "Youtube Host Changer",
  "version" : "1.0",
  "manifest_version" : 2,
  "description" : "It changes Youtube HTTP host to HTTPS",
  "browser_action": {
    "default_icon": "icon.png"
  },
  "content_scripts": [
      {
     "matches": ["file:///*/*","http://*/*","https://*/*"],
     "js": ["jquery.js", "youtube_host.js"]
   }
    ]
  }

这是我的youtube_host.js

/*
* Part of the Youtube Host Change Project.
* Author : Ahmad Faiyaz
*/
function change_links(){
var nodes = document.getElementsByTagName("a");
    for(var i = 0; i < nodes.length; i++) {
        var link= nodes[i].href;
        link=link.replace("http://www.youtube","https://www.youtube");
        nodes[i].href=link;
 };
}
window.onload = change_links();

添加后有效

"permissions":["<all_urls>"]

manifest.json文件。

最终清单.json 文件

{
  "name": "Youtube Host Changer",
  "version" : "1.0",
  "manifest_version" : 2,
  "description" : "It changes Youtube HTTP host to HTTPS",
  "browser_action": {
    "default_icon": "icon.png"
  },
  "content_scripts": [
      {
     "matches": ["file:///*/*","http://*/*","https://*/*"],
     "js": ["jquery.js","youtube_host.js"]
   }
    ],
    "permissions":["<all_urls>"]
  }

如果您需要更多信息,请告诉我。

我认为你需要写

...
link = link.replace("http://www.youtube","https://www.youtube");
...

string.replace不会更改原始值,但会返回新的结果字符串。

最新更新