我必须通过chrome扩展在谷歌搜索页面中添加div,我的inject.js文件如下:
var body=document.getElementById("search");
//creates bar and creates bar removal function
var bar = document.createElement("DIV");
function removeBar(){
bar.remove();
}
//styles bar
var ds = bar.style;
ds.position = "fixed";
ds.width = "512px";
ds.height = "33px";
ds.background = "rgba(0,0,0,0.86)";
ds.zIndex = "9999999999999";
//creates X button and makes it so clicking it runs the removeBar() function
var x = document.createElement("BUTTON");
x.onclick = removeBar;
bar.appendChild(x);
//styles button
var xs = x.style;
xs.background = "black";
xs.borderColor = "black";
xs.color = "rgba(255,255,255,.86)";
xs.position = "fixed";
xs.left = "100%";
xs.marginTop = "5px";
xs.marginLeft = "-29px"
//puts X in button
var xtext = document.createTextNode("X");
x.appendChild(xtext);
//puts bar in page
body.insertBefore(bar, body.children[0]);我的manifest.json如下:
{
"manifest_version": 2,
"name": "Inject script in webpage",
"version": "2.0.1",
"description": "inject script in webpage.",
"icons": {
"48" : "sample-48.png",
"128" : "sample-128.png"
},
"content_scripts": [
{
"matches": ["https://www.google.com.pk/*"],
"js" : ["inject.js"],
"all_frames": true
}
]
}但是当我加载google SERP页面时,错误信息显示类似于“cannot call "insertBefore”property of null",似乎变量"body“是未定义的。通过检查google页面的元素,我检查了ID为"search“的DIV是否存在,如果我做错了,那么plzz会让我知道我是chrome扩展开发的新手
发布于 2014-07-13 03:55:43
问题可能出在这里:
var body=document.getElementById("search");"body“变量为空--可能是因为您要查找的id不存在。尝试查找其他id (我使用"gbqfb")。但是,与其在这里给你答案,你真正应该做的是学习使用Chrome的内置调试器来找出你的代码不能工作的原因。看看这个youtube视频:
https://stackoverflow.com/questions/24708290
复制相似问题