求教js创建元素后显示的问题
我想写一个浏览器插件,在按下某个键后可以在所有可用连接上显示一个标签
我是这样实现的:创建p元素,并添加到body子节点中
现在的问题是,按下键后标签确实创建了,但是不能显示出来。
而如果我把元素添加到可用链接的子节点中,则可以显示出来,但是会继承上层的样式,这和我的初衷有差别。。
我是网页开发小白,求教各位大大这怎么弄??
部分代码如下:
window.addEventListener('keyup',hehe,false)
var a = new Array();
if (key == 70 ){ //judging if pressed 'f'
a = document.getElementsByTagName("a")
for (var i=0;i<a.length;i++){
top = a[i].offsetTop;
left = a[i].offsetLeft;
//创建标签
var tag = document.createElement("p");
document.body.appendChild(tag);
tag.style.position = "absolute";
tag.style.top = top;
tag.style.left = left;
}
}
JavaScript
------解决方案--------------------你设置下p元素的样式不就好了
------解决方案--------------------offsetTop只是相对父容器的top值,不是相对整个网页的。
left同理。
------解决方案--------------------var top;
var obj = XX;
while(obj != "none") {
top = top.offsetTop;
obj = obj.offsetParent;
}
------解决方案--------------------window.addEventListener('keyup',hehe,false)
var a = new Array();
if (key == 70 ){ //judging if pressed 'f'
a = document.getElementsByTagName("a")
for (var i=0;i<a.length;i++){
top = a[i].offsetTop;
left = a[i].offsetLeft;
//创建标签
var tag = document.createElement("p");
document.body.appendChild(tag);
tag.style.position = "absolute";
tag.style.top = top;
tag.style.left = left;
tag.style.height =100px;
tag.style.width =100px;
tag.style.background = 'black';
}
}
用这个就行了