我正在制作一个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/*"
]
答案 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?