求教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';
     }
}
用这个就行了