我正在构建一个扩展程序,该扩展程序从网站(不是我的网站)中提取DOM,并自动完成一些输入的按钮单击。
输入中填充了我从创建的数据库(而不是网站的数据库)中提取的值。提取是使用php完成的,但填充是使用content-script.js中的javascript进行的。我想要的是,使php文件将这些值发送到我的内容脚本文件,并等待单击即响应,然后更新数据库。
当我使用XMLHttpRequest时,出现一个我无法访问的错误,并且被CORS策略阻止。
$(document).ready(function(){
function reqListener () {
console.log(this.responseText);
}
var oReq = new XMLHttpRequest();
oReq.addEventListener("load", reqListener);
oReq.open("GET", "http://localhost:8012/extension/php/getIntervenant.php");
oReq.send();
});
我的manifest.json文件
{
"manifest_version": 2,
"version": "1",
"name": "Extention ",
"description": "Extracting and attributing",
"content_scripts": [{
"matches": ["link here"],
"js":["jquery-3.3.1.min.js", "content-script.js"],
"run_at": "document_start"
}],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_popup": "popup.html",
"default_title": "Extention"
},
"permissions": ["unlimitedStorage"]
}
答案 0 :(得分:1)
代替:
function getXPathOfElement(elt)
{
var path = "";
for (; elt && elt.nodeType == 1; elt = elt.parentNode)
{
idx = getElementIdx(elt);
xname = elt.tagName;
if (idx > 1) xname += "[" + idx + "]";
path = "/" + xname + path;
}
return path;
}
function getElementIdx(elt)
{
var count = 1;
for (var sib = elt.previousSibling; sib ; sib = sib.previousSibling)
{
if(sib.nodeType == 1 && sib.tagName == elt.tagName) count++
}
return count;
}
应该是:
"permissions": ["unlimitedStorage"]