0

我正在制作一个 Google Chrome 扩展程序,当用户输入句柄时,它会解析 Twitter 提要的源代码。我知道除非您在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 提要的内容。

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

因此,为了测试我的代码是否有效,我将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/,它仍然无法正常工作。但是,如果我用简单的东西替换 jQuery 代码$("h5").text("Hello world!");,它就可以正常工作。我提取页面内容的 jQuery 代码有问题吗?

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

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

1 回答 1

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"]
  }
]

有关更多信息,请访问:可能有多个内容脚本用于不同的功能?

于 2017-05-19T16:34:23.563 回答