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

时间:2012-12-09 21:58:58

标签: javascript json google-chrome-extension

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

但我的扩展程序无效!!

这是我的manifest.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();

2 个答案:

答案 0 :(得分:0)

我认为你需要写

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

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

答案 1 :(得分:0)

添加

后可以使用
"permissions":["<all_urls>"]

manifest.json档。

最终manifest.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>"]
  }

如果您需要更多信息,请与我们联系。