软件艺术思考者  
混沌,彷徨,立志,蓄势...
公告
日历
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

随笔分类(86)

随笔档案(85)

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 

1.一个日历插件。
<script>
/* Creation date: 2004-6-13 */
var myC_x,myC_y;
var myC_timeset=null,myC_timeset1=null;
var divObj=null;
var inputName;
function myCalendar() //构建对象
{
var myDate = new Date();
this.year = myDate.getFullYear();
this.month = myDate.getMonth()+1;
this.date = myDate.getDate();
this.format="yyyy-mm-dd";
this.style = myStyle(1); 
this.show = createCalendar;
this.input = createInput;
}
function myStyle(num) //设置样式
{
if(!num||isNaN(num)){alert('参数不对,采用默认样式!');num=1;}
 var style = new Array();
style[1]=".week{background-color:#DfDfff;font-size:12px;width:140px;}"
+".ds{width:140px;font-size:12px;cursor:hand}"
+".mover{border:1px solid black;background-color:#f4f4f4;}"
+".move1{border:1px solid #5d5d5d;background-color:#f4f4f4;color:#909eff;font-size:12px}"
+".tit{background-color:#909EFF;width:140px;font-size:12px;color:white;cursor:default}"
+".cs{position:absolute;border:1px solid #909eff;width:142px;left:0px;top:0px;z-index:9999;}"
+".shadow{position:absolute;left:0px;top:0px;font-family: Arial Black;font-size:50px;color:#d4d4d4;z-index:1;text-align:center;}";
document.write("<style type='text/css'>");
document.write(style[num]);
document.write("</style>");
}
function createCalendar()
{
var week = new Array('日','一','二','三','四','五','六');
document.write("<div class='cs' onselectstart='return false' oncontextmenu='return false' onmousedown='if(event.button==2)this.style.display=\"none\"' id='myC_div'><div class='shadow'></div><div style='position:absolute;left:0px;top:0px;z-index:1'>");
//创建头部
document.write("<table class='tit' id='myC_Top' onmousedown='myC_x=event.x-parentNode.parentNode.style.pixelLeft;myC_y=event.y-parentNode.parentNode.style.pixelTop;setCapture()' onmouseup='releaseCapture();' onmousemove='myCMove(this.parentElement.parentElement);'><tr><td width=10 onmouseover='this.style.color=\"black\"' onmouseout='this.style.color=\"\"' onclick='cutYear()' style='font-family: Webdings;cursor:hand;' title='减少年份'>7</td><td title='减少月份' onmouseover='this.style.color=\"black\"' onclick='cutMonth()' onmouseout='this.style.color=\"\"' width=10 style='font-family: Webdings;cursor:hand;'>3</td><td align=center onmouseover=this.className='move1'; onmouseout=this.className='';divHidden(myC.parentElement.nextSibling); onclick='createyear("+this.year+",this);divShow(myC.parentElement.nextSibling);'></td><td align=center onclick='createmonth("+this.month+",this);divShow(myC.parentElement.nextSibling)' onmouseover=this.className='move1'; onmouseout=this.className='';divHidden(myC.parentElement.nextSibling);></td><td width=10 onmouseover='this.style.color=\"black\"' onmouseout='this.style.color=\"\"' onclick='addMonth()' style='font-family: Webdings;cursor:hand;' title='增加月份'>4</td><td width=10 style='font-family: Webdings;cursor:hand;' onmouseover='this.style.color=\"black\"' onmouseout='this.style.color=\"\"' onclick='addYear()' title='增加年份'>8</td></tr></table>");
//创建星期条目
document.write("<table class='week'><tr>");
for(i=0;i<7;i++)
document.write("<td align=center>"+week[i]+"</td>");
document.write("</tr></table>");
//创建日期条目
document.write("<table class='ds' id='myC' cellspacing=2 cellpadding=0>");
for(i=0;i<6;i++)
{
document.write("<tr>");
for(j=0;j<7;j++)
document.write("<td width=10% height=16 align=center onmouseover='mOver(this)' onmouseout='mOut(this)' onclick='if(this.innerText!=\"\")getValue(inputName,this.innerText);myC_div.style.display=\"none\"'></td>");
document.write("</tr>");
}
document.write("</table>");
//建建水印
document.write("</div>");
//创建选择图层
document.write("<div style='position:absolute;left:0px;top:0px;z-index:3' onmouseover=divShow(this) onmouseout=divHidden(this)></div>");
document.write("</div>");
//显示日期
showDate(this.year,this.month);
myC_div.style.display='none';
}
function getValue(obj,value)
{
eval(obj).value=parseInt(myC_Top.cells[2].innerText)+"-"+parseInt(myC_Top.cells[3].innerText)+"-"+value;
}
function showDate(year,month)
{
var myDate = new Date(year,month-1,1);
var today = new Date();
var day = myDate.getDay();
var length = new Array(31,30,31,30,31,30,31,31,30,31,30,31);
length[1] = ((year%4==0)&&(year%100!=0)||(year%400==0))?29:28;
for(i=0;i<myC.cells.length;i++)myC.cells[i].innerHTML = "";
for(i=0;i<length[month-1];i++)
{
myC.cells[i+day].innerHTML = (i+1);
if(new Date(year,month-1,i+1).getDay()==6||new Date(year,month-1,i+1).getDay()==0){myC.cells[i+day].style.color='red';}
}
myC_Top.cells[2].innerText=year+"年";
myC_Top.cells[3].innerText=month+"月";
with(myC.parentNode.previousSibling.style)
{
pixelLeft=myC.offsetLeft;
pixelTop=myC.offsetTop;
height = myC.clientHeight;
width = myC.clientWidth;
}
myC.parentElement.parentElement.style.height=myC.parentElement.offsetHeight;
myC.parentElement.previousSibling.innerHTML=year;
}
//一些附加函数--------------------
//---------Begin-------------------
function mOver(obj){obj.className = 'mover';}
function mOut(obj){if(obj.className=='mover')obj.className = '';}
function addYear(){var year = parseInt(myC_Top.cells[2].innerText);var month = parseInt(myC_Top.cells[3].innerText); year++;showDate(year,month);}
function addMonth(){var year = parseInt(myC_Top.cells[2].innerText);var month = parseInt(myC_Top.cells[3].innerText);month++;if(month>12){month=1;year++;}showDate(year,month);}
function cutYear(){var year = parseInt(myC_Top.cells[2].innerText);var month = parseInt(myC_Top.cells[3].innerText);year--;showDate(year,month);}
function cutMonth(){var year = parseInt(myC_Top.cells[2].innerText);var month = parseInt(myC_Top.cells[3].innerText);month--;if(month<1){month=12;year--;}showDate(year,month);}
function divS(obj)
{
if(obj!=divObj)
{
obj.style.backgroundColor="#909eff";
obj.style.color='black';
}
if(divObj!=null)
{
divObj.style.backgroundColor='';
divObj.style.color='';
}
divObj = obj;
}
function divShow(obj)
{ if (myC_timeset!=null) clearTimeout(myC_timeset);
obj.style.display='block';
}
function divHidden(obj){myC_timeset=window.setTimeout(function(){obj.style.display='none'},500);}
function createyear(year,obj)//创建年份选择
{
var ystr;
var oDiv;
ystr="<table class='move1' cellspacing=0 cellpadding=2 width="+obj.offsetWidth+">";
ystr+="<tr><td style='cursor:hand' onclick='createyear("+(year-20)+",myC_Top.cells[2])' align=center>上翻</td></tr>";
for(i=year-10;i<year+10;i++)
if(year==i)
ystr+="<tr style='background-color:#909eff'><td style='color:black;height:16px;cursor:hand' align=center onclick='myC_Top.cells[2].innerText=this.innerText;showDate("+i+",parseInt(myC_Top.cells[3].innerText));myC.parentElement.nextSibling.innerHTML=\"\"'>"+i+"年</td></tr>";
else
ystr+="<tr><td align=center style='cursor:hand' onmouseover=divS(this) onclick='myC_Top.cells[2].innerText=this.innerText;showDate("+i+",parseInt(myC_Top.cells[3].innerText));myC.parentElement.nextSibling.innerHTML=\"\"'>"+i+"年</td></tr>";
ystr+="<tr><td style='cursor:hand' onclick='createyear("+(year+20)+",myC_Top.cells[2])' align=center>下翻</td></tr>";
ystr+="</table>";
oDiv = myC.parentElement.nextSibling;
oDiv.innerHTML='';
oDiv.innerHTML = ystr;
showDiv(oDiv,obj.offsetTop+obj.offsetHeight,obj.offsetLeft);
}
function createmonth(month,obj)//创建月份选择
{
var mstr;
var oDiv;
mstr="<table class='move1' cellspacing=0 cellpadding=2 width="+(obj.offsetWidth+5)+">";
for(i=1;i<13;i++)
if (month==i)
mstr+="<tr style='background-color:#909eff'><td style='color:black;height:16px;cursor:hand' align=center onclick='myC_Top.cells[3].innerText=this.innerText;showDate(parseInt(myC_Top.cells[2].innerText),"+i+");myC.parentElement.nextSibling.innerHTML=\"\"'>"+i+"月</td></tr>";
else
mstr+="<tr><td align=center style='cursor:hand' onmouseover='divS(this)' onclick='myC_Top.cells[3].innerText=this.innerText;showDate(parseInt(myC_Top.cells[2].innerText),"+i+");myC.parentElement.nextSibling.innerHTML=\"\"'>"+i+"月</td></tr>";
mstr+="</table>";
oDiv = myC.parentElement.nextSibling;
oDiv.innerHTML='';
oDiv.innerHTML = mstr;
showDiv(oDiv,obj.offsetTop+obj.offsetHeight,obj.offsetLeft);
}
function showDiv(obj,top,left)
{
obj.style.pixelTop=top;
obj.style.pixelLeft=left;
}
function myCMove(obj)
{
if(event.button==1)
{
var X = obj.clientLeft;
var Y = obj.clientTop;
obj.style.pixelLeft= X+(event.x-myC_x);
obj.style.pixelTop= Y+(event.y-myC_y);
window.status=myC_y;
}
}
function showDiv2(obj)
{
inputName=obj.name;
var e=obj;
var ot = obj.offsetTop;
var ol=obj.offsetLeft;
while(obj=obj.parentElement){ot+=obj.offsetTop;ol+=obj.offsetLeft;}
myC_div.style.pixelTop=ot+e.offsetHeight;
myC_div.style.pixelLeft=ol;
myC_div.style.display="block";
}
function createInput(name)
{myC_div.style.display='none';
document.write("<input type='text' name='"+name+"' size=20 onfocus='showDiv2(this)'>");
}
// --------------End ---------------------
</script>
<script>
var myCalendar=new myCalendar;
myCalendar.year=2006;
myCalendar.show();
myCalendar.input("txt1");
</script>
<input type="text" name="test" onfocus="showDiv2(this)" readonly=true>
2.无刷新排序简例
<html>
<head>
<script>
function order()
{
var it=event.srcElement;
var table=it;
var i,j,k;
var t1,t2;
if(it.tagName=="TH"){
    i=it.cellIndex;
    it.title=it.title=="asc"?"desc":"asc";
    while(table.tagName!="TABLE")table=table.parentElement;
    if(table.rows.length<3)return true;
    for(j=1;j<table.rows.length;j++){
        for(k=j+1;k<table.rows.length;k++){
            if(it.title=="asc"?parseFloat(table.rows[k].cells[i].innerText)<parseFloat(table.rows[j].cells[i].innerText):parseFloat(table.rows[k].cells[i].innerText)>parseFloat(table.rows[j].cells[i].innerText))
            table.rows[j].swapNode(table.rows[k]);
        }
    }
}
}
</script>
</head>
<body>

<table border="1">
<thead onclick="order()" style="cursor:hand;">
<th>Item 1</th><th>Item 2</th><th>Item 3</th><th>Item 4</th>
</thead>
<tr><td>12.3</td><td>423</td><td>86.83</td><td>1.213</td></tr>
<tr><td>2</td><td>434</td><td>5.334</td><td>.234</td></tr>
<tr><td>33</td><td>43</td><td>5.223</td><td>8.73</td></tr>
<tr><td>21.3</td><td>234</td><td>52.34</td><td>.666</td></tr>
<tr><td>33.4</td><td>59</td><td>67.2</td><td>.426</td></tr>
</table>

</body>
</html>

 

posted on 2006-12-08 11:49 智者无疆 阅读(373) 评论(7)  编辑  收藏 所属分类: Client teachnolgy research
评论:
  • # 关于XHTML  self Posted @ 2006-12-12 15:13
      因为XHTML是XML的一个应用,一些在基于SGML的HTML 4中完全合法的习惯在XHTML中必须改变。

      文档必须是编排良好的

      编排良好性Well-formedness是[XML]引入的一个新概念。从本质上说,这意味着元素必须有结束标签,或者必须以特殊方式书写(在下面说明)。

      元素必须嵌套,尽管SGML规定层叠非法,但现有的浏览器普遍允许层叠。

      正确:嵌套元素。

    <p>here is an emphasized <em>paragraph</em>.</p>

      不正确:层叠元素。

    <p>here is an emphasized <em>paragraph.</p></em>

      元素和属性名必须小写

      对所有HTML元素和属性名,XHTML 文档必须使用小写。 因为XML是大小写敏感的,所以这个差别是必须的。如 <li> 和 <LI> 是不同的标签。

      对非空元素,必须使用结束标签

      在基于 SGML的 HTML 4 中,一些隐含结束意义的元素允许忽略结束标签。而在基于XML的XHTML中,这种忽略不被允许。除了在DTD中被声明为空的元素,所有元素必须有结束标签。

      正确:结束了的元素。

    <p>here is a paragraph.</p><p>here is another paragraph.</p>

      不正确:未结束元素。

    <p>here is a paragraph.<p>here is another paragraph.

      属性值必须在引号中

      所有的属性必须用引号,即使是数字。

      正确:在引号中的属性值

    <table rows="3">

      不正确:不在引号中的属性值。

    <table rows=3>

      属性最小化

      XML 不支持属性最小化. 属性值对必须写全。象compact,checked这样的属性名不能不指定属性值而在元素中出现。

      正确:没有最小化的属性

    <dl compact="compact">

      不正确:最小化属性

    <dl compact>

      空元素

      空元素要么必须有结束标签,要么起始标签以/>结束. 例如,<br/>或<hr></hr>. 请参看HTML兼容性指导 HTML Compatibility Guidelines 中的信息,以保证向后兼容HTML 4用户代理程序

      正确:结束的空元素

    <br/><hr/>

      错误:未结束的空标签

    <br><hr>

      属性值中的空白字符处理

      对属性值,用户代理程序将删去引导和后序空白符,将一个或多个空白符(包括换行)转换成单个字符间空间(在西方书写体中是一个ASCII空格) See Section 3.3.3 of [XML]。

      Script and Style 元素

      在XHTML中,script和style元素声明为#PCDATA内容形式,因此,< 和 & 被看作是标识的开始,&lt和&amp 这样的实体被XML处理程序看作为实体引用而分别被认为是< 和 & . 将script和style元素的内容包裹在CDATA记号部分中避免了这些实体的扩张。

    <script>
    <![CDATA[
    ... unescaped script content ...
    ]]>
    </script>

      CDATA 部分被 XML 处理程序识别,是文档对象模型中一个结点。请参看1.3节Section 1.3的DOM LEVEL 1推荐标准[DOM]。

      替代的方式是使用外部script和style文档。

      SGML 禁止

      SGML 给作者的DTD可以指定在一个元素内部禁止出现的元素。这样的禁止在XML中是不可能的。

      例如,严格的 HTML 4 DTD 禁止任何深度的’a’元素对另一’a’元素的嵌套。在XML中无法写出这样的禁止。尽管这些禁止不能在DTD中定义,一些元素不应该被嵌套。在标准化的附录B Appendix B中是这些元素的汇总。

      具有 'id' 和 'name' 属性的元素

      HTML 4 定义了name属性的元素有 a,applet,form,frame,iframe,img,and map. HTML 4还引入了 id 属性. 这两个属性都是被设计作为片段标识符。

      在XML中,片段标识符是ID类型,每个元素只能有一个ID类型的属性。因此,在XHTML1.0中,id属性被定义为ID类型。为保证XHTML1.0文档是结构良好的XML文档,在定义一个片段标识符时,XHTML文档必须使用id属性,即使是对那些以前用name属性的元素。请参看 HTML Compatibility Guidelines 的信息,确保XHTML文档以text/html媒体类型使用时,这些”锚”能向后兼容。

      注意,在XHTML 1.0中,name 属性不被正式支持,在以后的XHTML版本中将被删除。
      回复  更多评论   

  • # Xhtml学习2  self Posted @ 2006-12-12 15:19
    Xhtml学习2
    1、选择什么样的DOCTYPE
    1)过渡的(transitional):要求非常宽松的DTD,它允许你继续使用html4.01的标识(但是要符合xhtml的写法)。完整代码如下:
    <!DOCTYPE html PUBLIC "-//W3C//DTD xhtml 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    (2)严格的(strict):要求严格的DTD,你不能使用任何表现层的标识和属性,例如。完整代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD xhtml 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    (3)框架的(frameset):专门针对框架页面设计使用的DTD,如果你的页面中包含有框架,需要采用这种DTD。完整代码如下:
    <!DOCTYPE html PUBLIC "-//W3C//DTD xhtml 1.0 Frameset//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

    2、什么是名字空间
    <html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312">
    "xmlns"是xhtml namespace的缩写,叫做"名字空间"声明.

    3、定义语言编码
    <meta http-equiv="content-type" content="text/html; charset=gb2312" /><meta http-equiv="content-language" content="gb2312" /> 这是针对老版本浏览器写的,以保证各种浏览器都能正确解释页面,xhtml语法规则要求所有的标识都必须有开始和结束。例如<body>和</body>、<p>和</p>等,对于不成对的标识,要求在标识最后加一个空格,然后跟一个"/"。例如<br>写成<br />、<img>写成<img />,加空格的原因是避免代码连在一起浏览器不识别。</p>
      回复  更多评论   

  • # js全屏  self Posted @ 2006-12-12 17:02
    <html>
    <head><meta http-equiv="content-type" content="text/html; charset=gb2312">
    <!-- 禁止页面被缓存 -->
    <meta http-equiv="Pragma" CONTENT="no-cache">
    <meta http-equiv="Expires" CONTENT="0">
    <meta http-equiv="Cache-Control" CONTENT="no-cache">

    <!-- 网页特效 -->
    <meta http-equiv="Page-Enter" content="revealTrans(duration=2, transition=12)">
    <meta http-equiv="Page-Exit" content="revealTrans(duration=2, transition=12)">
    <title>本页面实现全屏方式跳出另一个页面后关闭自己</title>
    <script>
    <!--
    function init() {
    cnrWin = window.open("test.htm", "cnr", "fullscreen=yes");
    }

    function closeSelf() {
    window.focus();
    document.all.WebBrowser.ExecWB(45,1);
    cnrWin.focus();
    }
    //-->
    </script>
    </head>

    <!-- 无提示对话框关闭窗口 -->
    <object id="WebBrowser" width=0 height=0
    classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
    </object>

    <body leftmargin="0" topmargin="0" onload="init()"
    onblur="closeSelf();">
    </body>

    </html>
      回复  更多评论   

  • # re: JS集锦  self Posted @ 2006-12-13 14:20
    在函数里加上这两句会使网页露出任务栏
    cnrWin .moveTo(0,0);
    cnrWin .resizeTo(screen.availWidth,screen.availHeight);  回复  更多评论   

  • # 可以使层的背景色变透明的两个css样式  self Posted @ 2007-01-09 15:21
    可以使层的背景色变透明的两个css样式
    background-color : transparent ;
    filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=100);  回复  更多评论   

  • # re: JS集锦  myself Posted @ 2007-07-23 14:09
    <script type="text/javascript">
    // --- 设置cookie
    function setCookie(sName,sValue,expireHours) {

    var cookieString = sName + "=" + escape(sValue);
    //;判断是否设置过期时间
    if (expireHours>0) {
    var date = new Date();
    date.setTime(date.getTime + expireHours * 3600 * 1000);
    cookieString = cookieString + "; expire=" + date.toGMTString();
    }
    document.cookie = cookieString;
    }

    //--- 获取cookie
    function getCookie(sName) {
    var aCookie = document.cookie.split("; ");
    for (var j=0; j < aCookie.length; j++){
    var aCrumb = aCookie[j].split("=");
    if (escape(sName) == aCrumb[0])
    return unescape(aCrumb[1]);
    }
    return null;
    }
    </script>
    <BODY onLoad="if(getCookie('1')!=null)document.getElementById('name').value=getCookie('1')">
    <form name="f1">
    <input name="name" id="name"type="text" value=""/><br/>
    <input type="text" name="password" ><br/>
    <input type="checkbox" name="remenberMe" onClick=";alert(已经设置)" />记住我

    <input type="submit" onClick="if(f1.remenberMe.checked==true)setCookie('1',f1.name.value,24) ;"/>
    </form>
      回复  更多评论   

  • # javascript setCookies  myself Posted @ 2007-07-23 14:10
    above is javascript setCookies   回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
 
Copyright © 智者无疆 Powered by: 博客园 模板提供:沪江博客


   观音菩萨赞