在IE和NETSCAPE都可运行的菜单(ie4,ns4以上都行,测试过)图片自己找吧
<HTML>
<HEAD>
<TITLE>WebBrancher</TITLE>
<script language="JavaScript">
var tagerhao=true;
var isNS = false;
var isIE = false;
if (parseInt(navigator.appVersion) >= 4) {
if (navigator.appName == "Netscape") {
isNS = true;
} else if(navigator.appName == "Microsoft Internet Explorer"){
isIE = true;
}
}
function startit(a,b,c,d,e,f,g,h,i){
menuTree = menuTree.addItem(new obj_node(a,b,c,d,e,f,g,h,i));}
function openit(){ createAppearanceArray(menuTree,menuTree.itemWithID('root'))
treeVariable = menuTree;
expandNode('root');//expandNode('fold-001');expandNode('fold-0013');expandNode(a);
}
</script>
<meta name="keywords" content="menu,tree,folder,explorer,ie,netscape,菜单,折叠菜单,树型菜单,折叠,树型,文件夹,frame,frameset">
<meta name="description" content="树型导航菜单。">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<LINK href="uniStyle.css" rel=stylesheet>
<script language="JavaScript" src="new2001.js"></script>
<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
<!--
function idMsg_onresize() {
if (isIE) {
lh= window.idMsg.offsetHeight;
window.jkform.style.top = lh+10;}
}
function outfunc() {
if(isNS){
document.layers.jkform.top=document.layers.idMsg.document.height+10
//alert(document.layers.idMsg.document.height)
}}
function aaa(){
//alert(window.treeform.node.value)
//expandNode(window.treeform.node.value);
alert( clicknode)
//var collapse
}
//-->
</SCRIPT>
</HEAD>
<BODY onload="startMenu()" bgcolor=#ffffff>
<br>
<div id="idMsg" style="HEIGHT: 10px; LEFT: 5px; POSITION: absolute; TOP: 5px" LANGUAGE=javascript onresize="return idMsg_onresize()">
正在展开目录结构......
</div>
<div id="jkform" style="POSITION: absolute; TOP: 300px">
<form name="treeform" id="treeform" method=post>
节点ID:<INPUT name="text1" id="text1" >
节点名字:<INPUT id=text2 name=text2 > 父节点ID:<INPUT
id=text3 name=text3><br>
文件类型<INPUT id=text4 name=text4>连接URL<INPUT id=text5 name=text5>ALT提示:<INPUT
id=text6 name=text6><br>
显示图片:<INPUT id=text7 name=text7>节点顺序:<INPUT id=text8 name=text8>打开方向:<INPUT
id=text9 name=text9><br>
<INPUT type="button" value="add"
id=button1 name=button1 onclick="startit(document.treeform.text1.value,document.treeform.text2.value,document.treeform.text3.value,document.treeform.text4.value,document.treeform.text5.value,document.treeform.text6.value,document.treeform.text7.value,document.treeform.text8.value,document.treeform.text9.value)">
<INPUT type=button value=open onclick="openit()"></form></TD></TD></TR></div>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE>WebBrancher</TITLE>
<script language="JavaScript">
var tagerhao=true;
var isNS = false;
var isIE = false;
if (parseInt(navigator.appVersion) >= 4) {
if (navigator.appName == "Netscape") {
isNS = true;
} else if(navigator.appName == "Microsoft Internet Explorer"){
isIE = true;
}
}
function startit(a,b,c,d,e,f,g,h,i){
menuTree = menuTree.addItem(new obj_node(a,b,c,d,e,f,g,h,i));}
function openit(){ createAppearanceArray(menuTree,menuTree.itemWithID('root'))
treeVariable = menuTree;
expandNode('root');//expandNode('fold-001');expandNode('fold-0013');expandNode(a);
}
</script>
<meta name="keywords" content="menu,tree,folder,explorer,ie,netscape,菜单,折叠菜单,树型菜单,折叠,树型,文件夹,frame,frameset">
<meta name="description" content="树型导航菜单。">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<LINK href="uniStyle.css" rel=stylesheet>
<script language="JavaScript" src="new2001.js"></script>
<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
<!--
function idMsg_onresize() {
if (isIE) {
lh= window.idMsg.offsetHeight;
window.jkform.style.top = lh+10;}
}
function outfunc() {
if(isNS){
document.layers.jkform.top=document.layers.idMsg.document.height+10
//alert(document.layers.idMsg.document.height)
}}
function aaa(){
//alert(window.treeform.node.value)
//expandNode(window.treeform.node.value);
alert( clicknode)
//var collapse
}
//-->
</SCRIPT>
</HEAD>
<BODY onload="startMenu()" bgcolor=#ffffff>
<br>
<div id="idMsg" style="HEIGHT: 10px; LEFT: 5px; POSITION: absolute; TOP: 5px" LANGUAGE=javascript onresize="return idMsg_onresize()">
正在展开目录结构......
</div>
<div id="jkform" style="POSITION: absolute; TOP: 300px">
<form name="treeform" id="treeform" method=post>
节点ID:<INPUT name="text1" id="text1" >
节点名字:<INPUT id=text2 name=text2 > 父节点ID:<INPUT
id=text3 name=text3><br>
文件类型<INPUT id=text4 name=text4>连接URL<INPUT id=text5 name=text5>ALT提示:<INPUT
id=text6 name=text6><br>
显示图片:<INPUT id=text7 name=text7>节点顺序:<INPUT id=text8 name=text8>打开方向:<INPUT
id=text9 name=text9><br>
<INPUT type="button" value="add"
id=button1 name=button1 onclick="startit(document.treeform.text1.value,document.treeform.text2.value,document.treeform.text3.value,document.treeform.text4.value,document.treeform.text5.value,document.treeform.text6.value,document.treeform.text7.value,document.treeform.text8.value,document.treeform.text9.value)">
<INPUT type=button value=open onclick="openit()"></form></TD></TD></TR></div>
</BODY>
</HTML>
解决方案 »
- Ext form提交时报错,各种方式都试了还不行
- 如何在新窗体中打开
- 有关在javascript中变量相减的问题
- 兼容IE和FF的手掌形状的cursor是什么?不是手指是手掌.谢谢
- 怎样实现这样一种效果(在页面点击删除按钮后,弹出一个div的确认删除信息,body里除了div这个标签,其他的全部变成不可用)
- 【求助】Javascript中GBK转utf-8
- VBscript如何判断哪一个单选框被选中了
- 怎样禁止某个元素响应某个事件?比如禁止body响应onscroll事件?
- 请问一个满屏显示的问题-----非常谢谢!
- 求求各位大神帮忙解决这个问题,求求各位大神帮忙解决这个问题,求求各位大神帮忙解决这个问题,求求各位大神帮忙解决这个问题,求求各位大神帮忙解决这个问题,求求各位大
- 如何将一个列表框隐藏于层下?
- 如何得到Word关闭事件?
var treevar
var showroot
var menuTree
var tagerhao
var clicknode
var collapse
function outlysjunzi() {
if (tagerhao) outfunc(); }function startMenu() {
imageDirectory = 'bird_img'; //图片目录
clicknode='|'
collapse='|'
menuTree = new obj_collection()
defineMenuItems(menuTree)
createAppearanceArray(menuTree,menuTree.itemWithID('root'))
treeVariable = menuTree;
expandNode('root');
}
function obj_node(id,name,parentID,type,url,alt,altImage,position,target) {
this.id = id.toLowerCase();
this.name = name;
this.parentID = parentID.toLowerCase();
this.type = type.toLowerCase();
this.url = url;
this.alt = alt;
this.altImage = altImage;
this.position = position;
this.target = target;
}function obj_collection() {
this.addItem = addItem;
this.itemWithID = itemWithID;
this.itemIDExists = itemIDExists;
this.extractExpandableNodes = extractExpandableNodes;
this.posOfItemWithID = posOfItemWithID;
this.length = 0;
return this
}function obj_array(size) {
this.length = size;
this.itemWithID = itemWithID;
this.itemIDExists = itemIDExists;
this.posOfItemWithID = posOfItemWithID;
return this
}function obj_appearanceNode(id,imageSequence,name,parentID,type,url,alt,target,visable) {
this.id = id;
this.imageSequence = imageSequence;
this.name = name;
this.parentID = parentID;
this.type = type;
this.url = url;
this.alt = alt;
this.target = target;
this.visable = visable;
return this
}function createAppearanceArray(treeVariable,startNode) {
appearanceArray = new obj_array(treeVariable.length);
appearancePos = 1;
if (startNode.type == 'page') {alert("The createAppearanceArray() function can only be called on a root or folder node.")}
else {createAppearanceBranch(treeVariable,startNode)}
}function createAppearanceBranch(treeVariable,startNode) {
if (startNode.type == 'root') {if (startNode.altImage == '') {var iconImage = 'img-globe.gif'}
else {var iconImage = startNode.altImage}
var newAppNode = new obj_appearanceNode(startNode.id,iconImage,startNode.name,'',startNode.type,startNode.url,startNode.alt,startNode.target,true)
appearanceArray[appearancePos] = newAppNode;
appearancePos = appearancePos + 1}
if (startNode.type == 'folder') {var newAppNode = new obj_appearanceNode(startNode.id,'',startNode.name,startNode.parentID,startNode.type,startNode.url,startNode.alt,startNode.target,false);
var appearanceStr = addStringToStart('','img-folder.gif');
var lengthOfBranch = extractChildren(treeVariable,treeVariable.itemWithID(startNode.parentID)).length;
if (startNode.position == lengthOfBranch) {appearanceStr = addStringToStart(appearanceStr,'img-plus-end.gif|')}
else {appearanceStr = addStringToStart(appearanceStr,'img-plus-cont.gif|')}
appearanceStr = addStringToStart(appearanceStr,createParentalStructure(treeVariable,startNode.id));
newAppNode.imageSequence = appearanceStr;
appearanceArray[appearancePos] = newAppNode;
appearancePos = appearancePos + 1}
if (startNode.type == 'page') {var newAppNode = new obj_appearanceNode(startNode.id,'',startNode.name,startNode.parentID,startNode.type,startNode.url,startNode.alt,startNode.target,false);
if (startNode.altImage == '') {var appearanceStr = 'img-page.gif'}
else {var appearanceStr = startNode.altImage}
var lengthOfBranch = extractChildren(treeVariable,treeVariable.itemWithID(startNode.parentID)).length;
if (startNode.position == lengthOfBranch) {appearanceStr = addStringToStart(appearanceStr,'img-branch-end.gif|')}
else {appearanceStr = addStringToStart(appearanceStr,'img-branch-cont.gif|')}
appearanceStr = addStringToStart(appearanceStr,createParentalStructure(treeVariable,startNode.id));
newAppNode.imageSequence = appearanceStr;
appearanceArray[appearancePos] = newAppNode;
appearancePos = appearancePos + 1
}
else {
var nodeChildren = extractAndSortChildren(treeVariable,startNode);
var lengthOfBranch = nodeChildren.length;
var currentIndex = 1;
while (currentIndex <= lengthOfBranch) {createAppearanceBranch(treeVariable,nodeChildren[currentIndex])
currentIndex = currentIndex + 1}
}
}
var startingPos = appearanceArray.posOfItemWithID(nodeID) + 1;
childCount = 0;
countChildrenOf(treeVariable,nodeID);
var endPos = (startingPos + childCount) - 1;
var nodeposition=collapse.indexOf('|'+ nodeID +'|')
if (nodeposition == -1){
collapse=collapse + nodeID + '|' ; }
if (endPos < startingPos) {endPos = startingPos + ((extractChildren(treeVariable,treeVariable.itemWithID(nodeID)).length) - 1) } currentIndex = startingPos
while (currentIndex <= endPos) {
if (appearanceArray[currentIndex].type == 'folder') {if ((appearanceArray[currentIndex].imageSequence).indexOf("img-folder-open.gif") != -1) {collapseAppearance(appearanceArray[currentIndex]); appearanceArray[currentIndex].visable = false}
else {appearanceArray[currentIndex].visable = false}
}
else {appearanceArray[currentIndex].visable = false}
currentIndex = currentIndex + 1
} collapseAppearance(appearanceArray.itemWithID(nodeID))
timeOutId = setTimeout("drawMenu(appearanceArray)",0);
}function collapseAppearance(arrayNode) {
var imageSequence = arrayNode.imageSequence;
var newImage = "img-plus-cont.gif";
var oldCont = "img-minus-cont.gif";
var oldEnd = "img-minus-end.gif";
var oldLength = oldCont.length;
var plusPosition = imageSequence.indexOf(oldCont)
if (plusPosition == -1) {plusPosition = imageSequence.indexOf(oldEnd); newImage = "img-plus-end.gif"; oldLength = oldEnd.length} var newAppearance = imageSequence.substring(0,plusPosition) + newImage + "|img-folder.gif"
arrayNode.imageSequence = newAppearance;
}function expandNode(nodeID) {
var lengthOfArray = appearanceArray.length;
var currentIndex = 1;
var nodeposition=clicknode.indexOf('|'+ nodeID +'|')
if (nodeposition == -1){
clicknode=clicknode + nodeID + "|" }
while (currentIndex <= lengthOfArray) {
if ((appearanceArray[currentIndex].id == nodeID) || (appearanceArray[currentIndex].parentID == nodeID)) {appearanceArray[currentIndex].visable = true;
if (appearanceArray[currentIndex].id == nodeID) {var parentIndex = currentIndex}
}
currentIndex = currentIndex + 1;
}
if (appearanceArray[parentIndex].type != 'root') {
expandAppearance(appearanceArray[parentIndex])}
timeOutId = setTimeout("drawMenu(appearanceArray)",0);
}function expandAppearance(arrayNode) {
var imageSequence = arrayNode.imageSequence;
var newImage = "img-minus-cont.gif";
var oldCont = "img-plus-cont.gif";
var oldEnd = "img-plus-end.gif";
var oldLength = oldCont.length;
var plusPosition = imageSequence.indexOf(oldCont)
if (plusPosition == -1) {plusPosition = imageSequence.indexOf(oldEnd); newImage = "img-minus-end.gif"; oldLength = oldEnd.length} var newAppearance = imageSequence.substring(0,plusPosition) + newImage + "|img-folder-open.gif";
arrayNode.imageSequence = newAppearance;
}function drawMenu(appearanceArray) {
var lengthOfArray = appearanceArray.length;
var currentIndex = 1,isNS,isIE,isIE4,isIE5;
treevar = ''
if (parseInt(navigator.appVersion) >= 4) {
if (navigator.appName == "Netscape") {
isNS = true;
} else if(navigator.appName == "Microsoft Internet Explorer"){
isIE = true;
if (navigator.appVersion.indexOf("MSIE 4") != -1) {isIE4 = true}
if (navigator.appVersion.indexOf("MSIE 5") != -1) {isIE5 = true}
}
}
while (currentIndex <= lengthOfArray) {
if (appearanceArray[currentIndex].visable == true){drawNode(appearanceArray[currentIndex])}
currentIndex = currentIndex + 1;
}
if ( isIE ) { document.all.idMsg.innerHTML = treevar;}
if ( isNS ) { document.layers.idMsg.document.write ( treevar ); document.layers.idMsg.document.close();}
outlysjunzi();
}
function drawNode(node) {
var imageSequence = node.imageSequence;
writeImageSequence(node,imageSequence);
//if (node.type == 'root') {nodeName = node.name}
//else {nodeName = node.name}
nodeName = node.name
if (node.target == '') {var nodeTarget = 'PageFrame'}
else {nodeTarget = node.target}
if ((node.type=='root')&&(showroot==true)||(node.type!='root')) {
if (node.type=='folder'){
var finished = false;
var lengthOfString = imageSequence.length;
var imageSeq = imageSequence;
while (finished == false) {
if (imageSeq == '') {finished = true}
else { imageString = stringUpToBar(imageSeq);
if (imageString.length == imageSeq.length) {imageSeq = ''}
else {imageSeq = imageSeq.substring(imageString.length + 1,imageSeq.length);}
if ((imageString == 'img-plus-cont.gif') || (imageString == 'img-plus-end.gif')) {
treevar=treevar+" <A CLASS=TREE HREF='" + node.url + "' TARGET='" + nodeTarget + "' title='"+ node.alt +"' onclick=javascript:expandNode('" + node.id + "')>" + nodeName + "</A><BR>"}
else
{if ((imageString == 'img-minus-cont.gif') || (imageString == 'img-minus-end.gif')) {
treevar=treevar+" <A CLASS=TREE HREF='" + node.url + "' TARGET='" + nodeTarget + "' title='"+ node.alt +"' onclick=javascript:collapseNode('" + node.id + "')>" + nodeName + "</A><BR>"}
else {}
} }}
}
else
treevar=treevar+" <A CLASS=TREE HREF='" + node.url + "' TARGET='" + nodeTarget + "' title='"+ node.alt +"'>" + nodeName + "</A><BR>"}}function writeImageSequence(node,sequence) {
var finished = false;
var lengthOfString = sequence.length;
var imageSeq = sequence;
while (finished == false) {
if (imageSeq == '') {finished = true}
else { imageString = stringUpToBar(imageSeq);
if (imageString.length == imageSeq.length) {imageSeq = ''}
else {imageSeq = imageSeq.substring(imageString.length + 1,imageSeq.length);}
if ((imageString == 'img-plus-cont.gif') || (imageString == 'img-plus-end.gif')) {
nodeIdent = "'" + node.id + "'"
treevar=treevar+"<A CLASS=TREE HREF=javascript:expandNode(" + nodeIdent + ")><IMG SRC='" + imageDirectory + "/" + imageString + "' ALIGN=TEXTTOP BORDER=0></A>"}
else {if ((imageString == 'img-minus-cont.gif') || (imageString == 'img-minus-end.gif')) {
nodeIdent = "'" + node.id + "'"
treevar=treevar+"<A CLASS=TREE HREF=javascript:collapseNode(" + nodeIdent + ")><IMG SRC='" + imageDirectory + "/" + imageString + "' ALIGN=TEXTTOP BORDER=0></A>"}
else {if((node.type=='root')&&(showroot==true)||(node.type!='root')){treevar=treevar+"<IMG SRC='" + imageDirectory + "/" + imageString + "' ALIGN=TEXTTOP>"}}}
}
}
}function stringUpToBar(string) {
var lengthOfString = string.length;
var currentIndex = 0;
var newString = '';
var finished = false;
while (finished == false) {
if (currentIndex == lengthOfString) {finished = true}
else {
if (string.charAt(currentIndex) == '|') {finished = true}
else {newString = newString + string.charAt(currentIndex)}
currentIndex = currentIndex + 1
}
if (currentIndex == lengthOfString) {finished = true}
}
return newString
}function addStringToStart(existingString,addition) {
newString = addition + existingString;
return newString
}
份解决后奉上。
网络技术讨论--下载和演示都在这了。
在这只能连续发3帖子,而且每次才给发100多行的代码。象这样的问题不是几个函数就能做到的,当然.net控件除外,那就限定只能用一个平台了。