Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点浏览器脚本?_Javascript_Dom - Fatal编程技术网

Javascript 节点浏览器脚本?

Javascript 节点浏览器脚本?,javascript,dom,Javascript,Dom,我想在浏览器中显示一个DOM节点树,其中包含可折叠的子节点。我正在寻找与FireBug的“html”选项卡几乎相同的功能,只是我希望它位于浏览器窗口中,并且我希望能够选择任意节点作为根节点。在我自己写之前,我想我应该检查一下,以确保没有人能给我指出一个已经写好的版本。我会检查FireBug Lite,FireBug的一个特殊版本,它全部用Javascript实现,以便在Internet Explorer等劣等浏览器上使用: 这几乎正是你想要的(我认为),即使它不是,它也应该足够近,让你可以从它

我想在浏览器中显示一个DOM节点树,其中包含可折叠的子节点。我正在寻找与FireBug的“html”选项卡几乎相同的功能,只是我希望它位于浏览器窗口中,并且我希望能够选择任意节点作为根节点。在我自己写之前,我想我应该检查一下,以确保没有人能给我指出一个已经写好的版本。

我会检查FireBug Lite,FireBug的一个特殊版本,它全部用Javascript实现,以便在Internet Explorer等劣等浏览器上使用:


这几乎正是你想要的(我认为),即使它不是,它也应该足够近,让你可以从它开始。

我自己写。它使用jquery(我在下面称之为$jq)

nodeExplorer=function(节点,容器){//注意:容器必须是jquery对象
$jq(“.nodeExplorerNode”).live(“单击”,函数(){
$jq(this).toggleClass(“崩溃”);
返回false;
});
if($jq(“#nodeExplorerStyles”).length==0){
$jq(“正文”)。附加(
""+
“.collapped.nodeExplorerNode{”+
“显示:无”+
"}"+
“.collapsed>.减号{”+
“显示:无”+
"}"+
“.collapsed>.plus{”+
“显示:内联”+
"}"+
“.plus{”+
“显示:无”+
"}"+
“.nodeExplorerNode{”+
“光标:指针”+
"}"+
""
)
};
var drawNodes=函数(节点、容器){
if(节点标记名){
容器=$jq(“-+”+节点标记名+”).appendTo(容器);
}else if(节点数据){
container.append(“+node.data+”);
}
对于(var i=0;i
nodeExplorer = function(node, container){ // note: container must be a jquery object


    $jq(".nodeExplorerNode").live("click", function(){
        $jq(this).toggleClass("collapsed");
        return false;
    });

    if($jq("#nodeExplorerStyles").length == 0){

        $jq("body").append(
            "<style id='nodeExplorerStyles'>"+
                ".collapsed .nodeExplorerNode{"+
                    "display:none" +
                "}"+
                ".collapsed>.minus{"+
                    "display:none" +
                "}"+
                ".collapsed>.plus{"+
                    "display:inline" +
                "}"+
                ".plus{"+
                    "display:none" +
                "}"+
                ".nodeExplorerNode{"+
                    "cursor: pointer" +
                "}"+
            "</style>"
        )

    };

    var drawNodes = function(node, container){
        if(node.tagName){
            container = $jq("<div style='margin-left: 20px' class='collapsed nodeExplorerNode'><span class='minus'>- </span><span class='plus'>+ </span>"+ node.tagName +" </div>").appendTo(container);
        }else if(node.data){
            container.append("<b>" + node.data + "</b>");
        }
        for(var i=0; i< node.childNodes.length; i++){
            drawNodes(node.childNodes[i], container)    
        }
    }   

    drawNodes(node, container);

}