如何从JS文件编辑manifest.json文件?

时间:2017-01-14 19:28:24

标签: javascript html google-chrome-extension manifest.json

我正在制作一个Google Chrome扩展程序,用于在用户输入句柄时解析Twitter Feed的源代码。我知道除非您在manifest.json文件中授予权限,否则无法提取外部网站的源代码。但是,在我的情况下,URL会根据用户输入的Twitter句柄而有所不同,那么如何直接从我的popup.js脚本编辑清单文件?

例如,我想要这样的事情:

{
    "permissions": [
        "http://www.twitter.com/" + handle + "/with_replies"
    ]
}

在我的manifest.json文件和

var handle = "CNN";
$(document).ready(function() {
    $.get("http://www.twitter.com/" + handle + "/with_replies", function(data) {
        $("#body").text(data);
    });
});

返回CNN的Twitter Feed内容。

*************** *更新************************************************

因此,为了测试我的代码是否有效,我将manifest.json文件更改为包含http://www.twitter.com/*作为权限,并将我的jQuery代码更改为:

$.get("https://twitter.com/", function(data) {
    $("h5").text(data);
    });
});

这是在侦听按钮单击的事件侦听器内部,因此这应该将h5元素的文本更改为网页的源,但事实并非如此。我已尝试将https://www.twitter.com/*替换为https://www.twitter.com/,但仍无效。但是,如果我用简单的$("h5").text("Hello world!");替换jQuery代码,它可以正常工作。我的jQuery代码是否有问题来提取页面的内容?

这是我的清单文件中的权限部分:

"permissions": [
 "activeTab",
 "storage",
 "https://twitter.com/*"
]

1 个答案:

答案 0 :(得分:0)

我怀疑你可以出于安全原因编辑文件。但是,您可以在不同的场合执行多个content_scripts。因此,如果您的条件在该网站上满足,则会执行。

"content_scripts": [
  {
    "matches": ["https://www.google.com/*"],
    "js": ["jquery.js", "myGoogleScript.js"]
  },
  {
    "matches": ["http://www.example.com/*"],
    "js": ["jquery.js", "myExampleScript.js"]
  }
]

如需了解更多信息,请访问:Possible to have multiple content scripts for different functions?