秋天叶落

每天进步一点,终将走上顶点
posts - 8, comments - 6, trackbacks - 0, articles - 0

2009年7月15日

修改了一下 生成的是jquery.treeview格式的 因为我在用jquery.treeview
Code

posted @ 2009-07-15 14:17 秋天叶落 阅读(1860) 评论(0) 编辑

2007年5月24日

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<style type="text/css">
 .divbody
{
  z
-index:2;
  left:
2%;
  visibility:hidden;
  width:
98%;
  cursor:crosshair:
  position:absolute:
  top:40px;
  height:
96%;
  background
-color:#ffffcc;
 }

 p
{
  color:#cc6633;
  font
-weight:bold;
 }

 .divprogress
{
  border
-right:black 1px solid;
  padding
-right:3px;
  border
-top:black 1px solid;
  padding
-left:3px;
  font
-size:10pt;
  padding
-bottom:2px;
  border
-left:black 1px solid;
  padding
-top:2px;
  border
-bottom:black 1px solid;
 }

</style>
<script type="text/javascript">
 
//设置span元素的编号
 var progressEnd=16;
 
//设置进度条的背影为蓝色
 var progressColor="blue";
 
//设置进度条的走动时间-----毫秒为单位
 var progressInterval=350;
 
//时度条的开始标志
 var progressBegin=0;
 
var progressTimer;
 
function progress_clear(){
  
//清空定时器
  clearTimeout(progressTimer);
  
//隐藏div
   window.alert("连接成功!!!!!!")
    document.getElementById(
"framediv").style.visibility="hidden";
  }

 
//逐个显视<span>
  function progress_update(){
   progressBegin
++;
   
//如果开始标志己经在于结束标志
   if(progressBegin>progressEnd){
    progress_clear();
   }
else{
    document.getElementById(
"progress"+progressBegin).style.backgroundColor=progressColor;
    
//在一定的时间间隔内循环更新进度条
    progressTimer=setTimeout("progress_update()",progressInterval);
   }

  }

 
//单击事件
 function linkto(){
  document.getElementById(
"framediv").style.visibility="visible";
  progress_update();
 }

</script>
</HEAD>

<BODY>
<input id="btn1" type="button" onclick="linkto()" value="连接"/>
<div id="framediv" class="divbody">
 
<br/>
 
<p>正在连接站点,请稍候.</p>
 
<table align="center">
  
<tr><td>
    
<div class="divprogress"><span id="progress1">&nbsp;&nbsp;</span>
    
<span id="progress2">&nbsp;&nbsp</span>
    
<span id="progress3">&nbsp;&nbsp</span>
    
<span id="progress4">&nbsp;&nbsp</span>
    
<span id="progress5">&nbsp;&nbsp</span>
    
<span id="progress6">&nbsp;&nbsp</span>
    
<span id="progress7">&nbsp;&nbsp</span>
    
<span id="progress8">&nbsp;&nbsp</span>
    
<span id="progress9">&nbsp;&nbsp</span>
    
<span id="progress10">&nbsp;&nbsp</span>
    
<span id="progress11">&nbsp;&nbsp</span>
    
<span id="progress12">&nbsp;&nbsp</span>
    
<span id="progress13">&nbsp;&nbsp</span>
    
<span id="progress14">&nbsp;&nbsp</span>
    
<span id="progress15">&nbsp;&nbsp</span>
    
<span id="progress16">&nbsp;&nbsp</span>
  
</td></tr>
 
</table>
</div>
</BODY>
</HTML>

posted @ 2007-05-24 15:49 秋天叶落 阅读(381) 评论(1) 编辑

先来看一张简单的文档树
click for full size
很明显树的顶层节点是NodeA节点,接下来可以通过指定的合适节点移动到树中的任何点,结合以下的代码你可以更好的了解这棵树节点间的相互关系:
NodeA.firstChild = NodeA1
NodeA.lastChild = NodeA3
NodeA.childNodes.length = 3
NodeA.childNodes[0] = NodeA1
NodeA.childNodes[1] = NodeA2
NodeA.childNodes[2] = NodeA3
NodeA1.parentNode = NodeA
NodeA1.nextSibling = NodeA2
NodeA3.prevSibling = NodeA2
NodeA3.nextSibling = null
NodeA.lastChild.firstChild = NodeA3a
NodeA3b.parentNode.parentNode = NodeA

DOM定义对操作一个文档对象的节点结构提供了实用的方法,它提供了像执行对象插入,更新,删除,克隆等这些常用的方法。
insertBefore()--在参考子节点之前插入一个新的子节点.如果参考的子节点为null,则新的子节点将作为调用节点的最后一个子节点插入。
replaceChild()--在childNodes集合种使用指定的newChild来代替oldChild;如果代替成功,则返回oldChild;如果newChild是null,则只需删除oldChild即可。
removeChild()--从节点的ChildNodes集合中删除removeChild指定的节点,如果删除成功,则返回删除的子节点。
appendChild()--添加一个新节点到childNodes集合的末尾,如果成功,则返回新节点。
cloneNode()--创建一个新的、复制的节点,并且如果传入的参数是true时,还将复制子节点,如果节点是一个元素,那么还将复制相应属性,返回新的节点。

为了在一棵文档树中访问或者建立一个新的节点,可以用下面这些方法:
getElementById()
getElementsByTagName()
createElement()
createAttribute()
createTextNode()
注意:在一个页面中只有一个文档对象,除了getElementsByTagName()外,其它方法均只能通过document.methodName()调用。

再看一下下面这个例子:
<html>
<head>
<title></title>
</head>
<body>
<p>This is a sample paragraph.</p>
<SCRIPT LANGUAGE="JavaScript">
<!--
alert(document.documentElement.lastChild.firstChild.tagName);
//-->
</SCRIPT>
</body>
</html>
结果将会显示"P",下面是一些解释
document.documentElement - gives the page's HTML tag.
lastChild - gives the BODY tag.
firstChild - gives the first element in the BODY.
tagName - gives that element's tag name, "P" in this case.
另一个:
<html>
<head>
<title></title>
</head>
<body>

<p>This is a sample paragraph.</p>
<SCRIPT LANGUAGE="JavaScript">
<!--
alert(document.documentElement.lastChild.firstChild.tagName);
//-->
</SCRIPT>
</body>
</html>
这个例子和上面并没有什么大的区别,仅仅是多了一个空行,但是在NS中,会自动为空行加上一个节点所以返回值是"undefined",而在IE中将跳过空行仍然指向P标签。

更常用的方法:
<p id="myParagraph">This is a sample paragraph.</p>
...
alert(document.getElementById("myParagraph").tagName);
这种方法你不用关心节点在文档树的哪一个地方,而只要保证在页面中它的ID号是唯一的就可以了。

接下来一种访问元素节点的方法是document.getElementsByTagName(),它的返回值是一个数组,例如你可以通过下面的例子改变整个页面的连接:
var nodeList = document.getElementsByTagName("A");
for (var i = 0; i < nodeList.length; i++)
nodeList[i].style.color = "#ff0000";

attribute和attributes
attribute对象和元素相关,但是却没有被认为是文档树的一部分,因此属性不能作为子节点集合的一部分来使用。
有三种方法可以为元素建立新的属性
1.
var attr = document.createAttribute("myAttribute");
attr.value = "myValue";
var el = document.getElementById("myParagraph");
el.setAttributeNode(attr);
2.
var el = document.getElementById("myParagraph");
el.setAttribute("myAttribute", "myValue");
3.
var el = document.getElementById("myParagraph");
el.myAttribute = "myValue";
你可以在html标签种定义自己的属性:
<p id="myParagraph" myAttribute="myValue">This is a sample paragraph.</p>
...
alert(document.getElementById("myParagraph").getAttribute("myAttribute"));
返回值将是"myValue".但是请注意这里必须使用getAttribute,而不是AttributeName,因为有一些浏览器并不支持自定义属性。

attributes也可以被轻易的从一个元素中删除,你可以使用removeAttribute()或者将element.attributeName指向一个null值。
通过attributes我们就可以产生一些动态效果:
<p id="sample1" align="left">Text in a paragraph element.</p>
... code for the links ...
document.getElementById('sample1').setAttribute('align', 'left');
document.getElementById('sample1').setAttribute('align', 'right');
另一种:
<p id="sample2" style="text-align:left;">Text in a paragraph
element.</p>
... code for the links ...
document.getElementById('sample2').style.textAlign = 'left';
document.getElementById('sample2').style.textAlign = 'right';
跟上面的例子一样,展示了可用通过元素修改style中的属性,甚至是class中的.唯一要提到的是textAlign是从style中的text-align中演变而来的,有一条基本规律,就是style中的属性如果出现-则在dom中将会被去掉并且随后的一个字母将改为大写,还有一点就是如果即使元素中没有style属性,上述例子同样可以使用。

text nodes:
先看一下例子:
<p id="sample1">This is the initial text.</p>
... code for the links ...
document.getElementById('sample1').firstChild.nodeValue =
'Once upon a time...';
document.getElementById('sample1').firstChild.nodeValue =
'...in a galaxy far, far away';
首先text nodes并没有像elements那样具有id属性,所有它并不能直接通过document.getElementById()或者document.getElementsByTagName()访问
看一下下面的结构也许会更明白一些:
click for full size
可以看出通过document.getElementById('sample1').firstChild.nodeValue就可以读取或者设置text nodes的值了。

另一个更加复杂一点的例子:
<p id="sample2">This is the <b>initial</b> text.</p>
它的文档结构
click for full size
在这里通过document.getElementById('sample1').firstChild.nodeValue讲仅仅改变"This is the"
initial text.将不会改变.在这里大家应该看到了它和innerHTML的不同了.当然你也可以这样用:
document.getElementById('sample3').firstChild.nodeValue =
'<b>Once</b> upon a time...';
document.getElementById('sample3').firstChild.nodeValue =
'...in a galaxy <i>far, far</i> away';
其中的html代码将不会被解释,浏览器将把他们当成普通的文本来显示。

创建和删除text nodes:
var myTextNode = document.createTextNode("my text");
通过上面的代码你可以创建一个新的text node,但是它并不是文档树的一部分,要让它显示在页面上就必须让它成为文档树中某一个节点的child,因为
text nodes不能有儿子,所以你不能将它加入到一个text nodes中,attribute也不属于文档树的一部分,这条路也不行,现在只剩下elements nodes
了,以下的例子展示了如何添加和删除一个text node:
<p id="sample1">Initial text within a paragraph element.</p>
... code to add a text node ...
var text = document.createTextNode(" new text " + (++counter1));
var el = document.getElementById("sample1");
el.appendChild(text);
... code to remove the last child node ...
var el = document.getElementById("sample1");
if (el.hasChildNodes())
el.removeChild(el.lastChild);
增加文本是很容易的,上面的代码建立了一个新的text node并且通过appendChild()方法将其加入到childNodes数组的末尾,并设置了一个counter1的全局变量,利于观察
hasChildNodes()的返回值是true or false;用来判断当前节点是否还有child,以阻止当其没有child的时候调用removeChild()产生的错误。

创建element nodes
有了上面的基础,应该更容易理解了,先看一下下面的代码
<div id="sample1">This text is in a DIV element.</div>
... code for the link ...
var paraEl, boldEl;
paraEl = document.createElement("p");
boldEl = document.createElement("b");
paraEl.appendChild(document.createTextNode("This is a new paragraph with "));
boldEl.appendChild(document.createTextNode("bold"));
paraEl.appendChild(boldEl);
paraEl.appendChild(document.createTextNode(" text added to the DIV"));
document.getElementById("sample1").appendChild(paraEl);
你还可以直接为新加的element nodes设置attribute,以下两种都可以:
boldEl.style.color = "#ffff00";
paraEl.appendChild(boldEl);
或者:
paraEl.appendChild(boldEl);
boldEl.style.color = "#ffff00";

注:此文主要来自于一些英文资料和身边的一些参考书,如果有错误大家请指出,一起讨论,DOM我一点也不熟。

posted @ 2007-05-24 13:43 秋天叶落 阅读(290) 评论(0) 编辑

2007年5月21日

web2.0横空出世,ajax首当其冲,今天做web的如果再不学点ajax的话,就显的落伍了,而学ajax的用的环境如果是asp.net,那ajax.net你就不得不学了。首先就是环境的配置,如下

vs2005+sql2005+Winxp sp2+ie6.0+Office2003

工具下载  

1.ASPAJAXExtSetup.msi

http://download.microsoft.com/download/5/4/6/5462bcbd-e738-45fa-84ca-fa02b0c4e1c2/ASPAJAXExtSetup.msi

2.ASPAJAXSourceCode.msi

http://download.microsoft.com/download/6/d/6/6d6c7c47-b9ff-4934-bb03-8a45b8418d35/ASPAJAXSourceCode.msi

3.AjaxControlToolkit

AjaxControlToolkit-NoSource

AjaxControlToolkit

有朋友给我反应说AjaxControlToolkit不能下载。现在给出下载链接。不好意思

http://ajax.asp.net/downloads/default.aspx?tabid=47

http://www.codeplex.com/AtlasControlToolkit/Release/ProjectReleases.aspx?ReleaseId=1425

环境设置如下:

下载完 ASPAJAXExtSetup.msi 安装更新后在你的系统盘下的(以C盘为例) 出现这个 文件夹:

C:\Program Files\Microsoft asp.NET\ASP.NET 2.0 ajax Extensions\v1.0.61025

安装这个后我们就可以创建Asp.net AJAXEnabledWebSite站点了,这其实就是个ajax.net网站的模板。但是我们现在还不能使用微软给我们开发好的ajax控件 。要想知道怎么使用ajax.net控件往下看。

下载AjaxControlToolkit ,上面两个一个是带源代码的 一个是不带源代码的toolkit。建议下载带源代码的 toolkit。下载完成后把该文件解压到:

C:\Program Files\Microsoft asp.NET\ASP.NET 2.0 ajax Extensions\v1.0.61025\AjaxContronlToolkit\

双击运行AjaxControlToolkit.sln。

用vs2005打开这个sln,编译TemplateVSI这个项目后,把在C:\Program Files\Microsoft asp.NET\ASP.NET 2.0 AJAX Extensions\SampleWebSite\Bin下面生成的AjaxControlToolkit.dll和AjaxControlToolkit.pdb复制到

C:\Program Files\Microsoft asp.NET\ASP.NET 2.0 AJAX Extensions\Binaries文件夹下面,这样我们就可以在vs2005中使用ajax.net这些控件了。

新建一个Ajax ControlToolkitWebSite 类型的web项目。在工具栏中新添加一个选项卡起名:AjaxControltoolkit

在这个选项卡上右键选择项-》浏览找到刚才复制过去的AjaxControlToolkit.dll,添加进来。这样我们就ajax.net控件成功引用到vs2005中了 。

现在你可以新建一个 Ajax ControlToolkitWebSite   项目来 happy一下。

 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1617559

posted @ 2007-05-21 10:46 秋天叶落 阅读(949) 评论(0) 编辑

2007年5月20日

虽然是照书写的,但也是流汗了  适合新手学习,老鸟们就不用看了 
http://files.cnblogs.com/wpfonline/rss.rar

posted @ 2007-05-20 19:44 秋天叶落 阅读(867) 评论(4) 编辑

代码如下:


  <SCRIPT   LANGUAGE="JavaScript">     
  <!--     
  /*haiwa@2004-02-12*/     
  function   Trim(strValue)     
  {     
  return   strValue.replace(/^\s*|\s*$/g,"");     
  }     
  function   SetCookie(sName,   sValue)     
  {     
  document.cookie   =   sName   +   "="   +   escape(sValue);     
  }     
    
  function   GetCookie(sName)     
  {     
  var   aCookie   =   document.cookie.split(";");     
  for   (var   i=0;   i   <   aCookie.length;   i++)     
  {     
  var   aCrumb   =   aCookie[i].split("=");     
  if   (sName   ==   Trim(aCrumb[0]))     
  {     
  return   unescape(aCrumb[1]);     
  }     
  }     
    
  return   null;     
  }     
  function   scrollback()     
  {     
  if   (GetCookie("scroll")!=null){document.body.scrollTop=GetCookie("scroll")}     
  }     
  //-->     
  </SCRIPT>     
    
  然后修改BODY位置为   
  <BODY   id=body   onscroll=SetCookie("scroll",body.scrollTop);   onload="scrollback();">     

posted @ 2007-05-20 19:26 秋天叶落 阅读(518) 评论(1) 编辑

Div+CSS+JS组和能够实现很多好看的特殊的效果,这里推荐一款可刷新的下拉菜单源代码:

<style type="text/css">
<!--
*{margin:0;padding:0;border:0;}
body {
font-family: arial, 宋体, serif;
font-size:12px;
}
#nav {
width:180px;
     line-height: 24px;
list-style-type: none;
text-align:left;
     /*定义整个ul菜单的行高和背景色*/
}

/*==================一级目录===================*/
#nav a {
width: 160px;
display: block;
padding-left:20px;
/*Width(一定要),否则下面的Li会变形*/
}

#nav li {
background:#CCC; /*一级目录的背景色*/
border-bottom:#FFF 1px solid; /*下面的一条白边*/
float:left;
/*float:left,本不应该设置,但由于在Firefox不能正常显示
继承Nav的width,限制宽度,li自动向下延伸*/
}

#nav li a:hover{
background:#CC0000; /*一级目录onMouseOver显示的背景色*/
}

#nav a:link   {
color:#666; text-decoration:none;
}
#nav a:visited   {
color:#666;text-decoration:none;
}
#nav a:hover   {
color:#FFF;text-decoration:none;font-weight:bold;
}

/*==================二级目录===================*/
#nav li ul {
list-style:none;
text-align:left;
}
#nav li ul li{
background: #EBEBEB; /*二级目录的背景色*/
}

#nav li ul a{
          padding-left:20px;
          width:160px;
/* padding-left二级目录中文字向右移动,但Width必须重新设置=(总宽度-padding-left)*/
}

/*下面是二级目录的链接样式*/

#nav li ul a:link   {
color:#666; text-decoration:none;
}
#nav li ul a:visited   {
color:#666;text-decoration:none;
}
#nav li ul a:hover {
color:#F3F3F3;
text-decoration:none;
font-weight:normal;
background:#CC0000;
/* 二级onmouseover的字体颜色、背景色*/
}

/*==============================*/
#nav li:hover ul {
left: auto;
}
#nav li.sfhover ul {
left: auto;
}
#content {
clear: left;
}
#nav ul.collapsed {
display: none;
}
-->

#PARENT{
width:300px;
padding-left:20px;
}
</style>

<div id="PARENT">
<ul id="nav">
<li><a href="http://www.webjx.com/htmldata/2006-08-17/1155805718.html#Menu=ChildMenu1"   onclick="DoMenu('ChildMenu1')">我的网站</a>
<ul id="ChildMenu1" class="collapsed">
<li><a href="http://www.webjx.com" target="_blank">网页教学网</a></li>
<li><a href=http://www.webjx.com/htmldata/2006-08-17/"#">管理</a></li>
<li><a href="http://www.webjx.com" target="_blank">网页教学网</a></li>
<li><a href=http://www.webjx.com/htmldata/2006-08-17/"#">管理</a></li>
<li><a href="http://www.webjx.com" target="_blank">网页教学网</a></li>
<li><a href=http://www.webjx.com/htmldata/2006-08-17/"#">管理</a></li>
</ul>
</li>
<li><a href="../../#Menu=ChildMenu2" onclick="DoMenu('ChildMenu2')">我的帐务</a>
<ul id="ChildMenu2" class="collapsed">
<a href="http://www.webjx.com" target="_blank">支付</a></li>
<li><a href=http://www.webjx.com/htmldata/2006-08-17/"#">管理</a></li>
<li><a href="#">网上支付</a></li>
<li><a href="#">登记汇款</a></li>
<li><a href="#">在线招领</a></li>
<li><a href="#">历史帐务</a></li>
</ul>
</li>
<li><a href="../../#Menu=ChildMenu3" onclick="DoMenu('ChildMenu3')">网站管理</a>
<ul id="ChildMenu3" class="collapsed">
<li><a href="#">登录</a></li>
<a href="http://www.webjx.com" target="_blank">管理</a></li>
<li><a href=http://www.webjx.com/htmldata/2006-08-17/"#">管理</a></li>
<li><a href=http://www.webjx.com/htmldata/2006-08-17/"#">管理</a></li>
</ul>
</li>
<li><a href="../../#Menu=ChildMenu4" onclick="DoMenu('ChildMenu4')">网站管理</a>
<ul id="ChildMenu4" class="collapsed">
<li><a href="#">登录</a></li>
<a href="http://www.webjx.com" target="_blank">管理</a></li>
<li><a href=http://www.webjx.com/htmldata/2006-08-17/"#">管理</a></li>
<li><a href=http://www.webjx.com/htmldata/2006-08-17/"#">管理</a></li>
<li><a href=http://www.webjx.com/htmldata/2006-08-17/"#">管理</a></li>
</ul>
</li>
</ul>
</div>

<script type=text/javascript><!--
var LastLeftID = "";

function menuFix() {
var obj = document.getElementById("nav").getElementsByTagName("li");

for (var i=0; i<obj.length; i++) {
   obj[i].onmouseover=function() {
    this.className+=(this.className.length>0? " ": "") + "sfhover";
   }
   obj[i].onMouseDown=function() {
    this.className+=(this.className.length>0? " ": "") + "sfhover";
   }
   obj[i].onMouseUp=function() {
    this.className+=(this.className.length>0? " ": "") + "sfhover";
   }
   obj[i].onmouseout=function() {
    this.className=this.className.replace(new RegExp("( ?|^)sfhover\\b"), "");
   }
}
}

function DoMenu(emid)
{
var obj = document.getElementById(emid);
obj.className = (obj.className.toLowerCase() == "expanded"?"collapsed":"expanded");
if((LastLeftID!="")&&(emid!=LastLeftID)) //关闭上一个Menu
{
   document.getElementById(LastLeftID).className = "collapsed";
}
LastLeftID = emid;
}

function GetMenuID()
{

var MenuID="";
var _paramStr = new String(window.location.href);

var _sharpPos = _paramStr.indexOf("#");

if (_sharpPos >= 0 && _sharpPos < _paramStr.length - 1)
{
   _paramStr = _paramStr.substring(_sharpPos + 1, _paramStr.length);
}
else
{
   _paramStr = "";
}

if (_paramStr.length > 0)
{
   var _paramArr = _paramStr.split("&");
   if (_paramArr.length>0)
   {
    var _paramKeyVal = _paramArr[0].split("=");
    if (_paramKeyVal.length>0)
    {
     MenuID = _paramKeyVal[1];
    }
   }
   /*
   if (_paramArr.length>0)
   {
    var _arr = new Array(_paramArr.length);
   }
  
   //取所有#后面的,菜单只需用到Menu
   //for (var i = 0; i < _paramArr.length; i++)
   {
    var _paramKeyVal = _paramArr[i].split('=');
   
    if (_paramKeyVal.length>0)
    {
     _arr[_paramKeyVal[0]] = _paramKeyVal[1];
    }  
   }
   */
}

if(MenuID!="")
{
   DoMenu(MenuID)
}
}

GetMenuID(); //*这两个function的顺序要注意一下,不然在Firefox里GetMenuID()不起效果
menuFix();
--></script>

posted @ 2007-05-20 19:23 秋天叶落 阅读(142) 评论(0) 编辑

哈哈 今天第一天开能,大家要多多关照呀 嘻嘻

posted @ 2007-05-20 19:19 秋天叶落 阅读(43) 评论(0) 编辑