0

我正在尝试构建一个 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();
4

2 回答 2

0

我认为你需要写

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

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

于 2012-12-09T22:00:16.467 回答
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>"]
  }

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

于 2012-12-09T23:06:27.103 回答