日期:2014-05-16  浏览次数:20360 次

求教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';

     }
}

用这个就行了