阿当的博客











{八月 28, 2008}   通过class名,取得元素节点

    昨天在做一个点击展开关闭效果的时候,为了方便重用,不考虑通过id来取得元素,而是通过可重用的class来取得元素。可是底层的js并不提供这个方法。一开始看YUI的api,看到有相关的方法,叫做getAncestorByClassName(),在本地试了下,虽然比不上jq的parents()方法好用,不过,也还算可以了。很顺利地完成了我想要的效果,可是传到网上去以后,却发现不能用。因为线上的YUI库是个版本比较老的版本,我猜很可能是还不支持这个方法。没办法,今天自己封装了个函数,提供同样的功能。

=======================demo============================

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<script type="text/javascript">
var getAncestorByClassName = function(node,oClassName){
   var obj = typeof node == "string" ? document.getElementById(node):node;
   while(obj.parentNode!=document){
    if(obj.parentNode.className==oClassName){
     return obj.parentNode;
    }else{
     obj = obj.parentNode;
    }
   }
   return null;
}
window.onload = function(){
   var test = document.getElementById("test");
   test.onclick=function(){
    var adang = getAncestorByClassName(this,"adang");
    alert(adang.title);
   }
}
</script>
<body>
<div class="adang" title="hello" id="demo">
<ul class="adang2" title="world">
   <li>
    <p>
     <a href="#" id="test">test</a>
    </p>
   </li>
</ul>
</div>
</body>
</html>

函数getAncestorByClassName 接收两个参数,第一个为元素节点,类型为DOM节点元素或者是对象的id都可以,第二个为想要取得的父节点的class名。返回值类型是DOM节点元素,如果没有找到,则返回null。这个例子很简单,可以举一返三写出通过 class名返回子节点元素等等功能,我就不多写了。



{八月 27, 2008}   [转载 css]语义性与元素名全称问题
看到的一篇不错的博客,详细地记述了标签的全称和对应的中文解释,转过来。
原文出处:http://www.css8.cn/blog/article.asp?id=7#comm_top

======================================================================

你思考过每个元素名的全称问题吗?也许出于习惯,很少想这个问题,例如,p表示段落,那么p的本意是什么呢?它是什么词的缩写呢?也许你知道p是段落(paragraph)的缩写,那么其他元素的名称呢?
今 天琢磨这个问题,故在网上狂找了半天,但是很遗憾居然没有找到相关资料,偶尔看到几个零散的提示,但是没有系统研究的资料,大家都在谈论HTML的语义 性,但是连最基本的元素的原义是什么都没有搞清,何谈语义化。故下点功夫整理一下,最后汇集一个HTML元素名全称的原义表,仅作为参考,可能还很不全 面,或者理解偏差,请有识之士PP。

div               语义:Division(分隔)
span           语义:Span(范围)
ol               语义:Ordered List(排序列表)
ul               语义:Unordered List(不排序列表)
li                 语义:List Item(列表项目)
dl               语义:Definition List(定义列表)
dt               语义:Definition Term(定义术语)
dd             语义:Definition Description(定义描述)
del             语义:Deleted(删除(的文本))
ins             语义:Inserted(插入(的文本))
h1~.h6     语义:Header 1 to Header 6(标题1到标题6)
p               语义:Paragraph(段落)
hr             语义:Horizontal Rule(水平尺)

a               语义:Anchor(锚)
abbr         语义:Abbreviation(缩写词)
acronym   语义:Acronym(取首字母的缩写词)
address   语义:Address(地址)
dfn             语义:Defines a Definition Term(定义定义条目)
kbd           语义:Keyboard(键盘(文本))
samp       语义:Sample(示例(文本))
var             语义:Variable(变量(文本))
tt               语义:Teletype(打印机(文本))
code       语义:Code(源代码(文本))
pre           语义:Preformatted(预定义格式(文本))
blockquote     语义:Block Quotation(区块引用语)
cite           语义:Citation(引用)
q               语义:Quotation(引用语)
strong     语义:Strong(加重(文本))
em           语义:Emphasized(加重(文本))

b               语义:Bold(粗体(文本))
i                 语义:Italic(斜体(文本))
big           语义:Big(变大(文本))
small       语义:Small(变小(文本))
sup           语义:Superscripted(上标(文本))
sub           语义:Subscripted(下标(文本))
bdo           语义:Direction of Text Display(文本显示方向)
br             语义:Break(换行)
center     语义:Centered(居中(文本))
font           语义:Font(字体)
u               语义:Underlined(下划线(文本))
s               语义:Strikethrough(删除线)
strike       语义:Strikethrough(删除线)



{八月 26, 2008}   [转载 css]word-wrap,word-break,white-space,text-overflow的区别和用法

在div中,文本布局经常出现,换行混乱的情况。
问题表现:1.如果是全英文字符串,中间不包含任何符号(包括空格),不自动换行.
          2.中英文混写,则在英文字符串的开始处换行(英文长度>div长度),结尾处不换行。
          3.英文整个单词换行。等等,可能还有一些问题,这里只列出了常见的几个;

介绍上面几个css属性功能的简单用法;
word-wrap:normal | break-word; (内容换行)
         normal:默认的属性值.(允许内容顶开指定的容器边界).
         break-word:内容将在边界内换行(不截断英文单词换行,截断英文单词下面的属性才具备这个功能。)

word-break:normal | break-all | keep-all (词内换行)
           normal:如果是中文则到边界处的汉字换行,如果是英文整个词换行,注意:如果出现某个英文字符串长度超过边界,则后面的部分将撑开边框,如果边框为固定属性,则后面部分将无法显示.
           break-all : 强行换行,将截断英文单词
           keep-all : 不允许字断开。如果是中文将把前后标点符号内的一个汉字短语整个换行,英文单词也整个换行,注意:如果出现某个英文.字符串长度超过边界,则后面的部分将撑开边框,如果边框为固定属性,则后面部分将无法显示.

text-overflow:clip | ellipsis (文本溢出)
             clip :  不显示省略标记(…),而是简单的裁切
             ellipsis :  当对象内文本溢出时(超过width部分)显示省略标记(…)

white-space: normal | pre | nowrap (内容不换行)
normal 默认。空白会被浏览器忽略。
pre 空白会被浏览器保留。其行为方式类似 HTML 中的 <pre> 标签。
nowrap 文本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止。
(层中放一个表格,如果层的float:none 则表格和层间会有空隙,这种问题的解决办法是在层的style里面加上white-space: nowrap)

使用方式: word-break:break-all;

一般情况下:
.body{
       word-wrap:break-word;
       word-break:keep-all;
       overflow:hidden;
}

.css{
      text-overflow:ellipsis;
      white-space:nowrap;
      overflow:hidden;
}

IE与Firefox将它看成是一个长单词了,因此不会自动换行。
对于IE,可以通过IE专有的CSS属性word-wrap即可实现自动换行:word-wrap:break-word;

对于Firefox,CSS2标准并没有定义类似word-wrap的属性,可以通过overflow属性将撑出的部分隐藏:overflow:hidden



{八月 22, 2008}   关于去css可读的问题
   今天想谈一下一个好的页面的必要条件—–去样式可读问题。

   重构并非只是用div布局代替table布局这么简单。标签语义化才是它的核心。同行应该都听说过css****日。这个日子的目的是什么呢?我想应该是提醒大家,语义化标签的重要性。

    因为css可以帮助我们改变标签的原始表现形式,比如说把一个内联的a变成block块级显示,把一个普通的span设置成字体很大,很粗的形式,表现得像一个标题。正因为如此,我们很容易就忘了去语义化标签,很多时候随便设一些标签,然后用css去控制它,得到我们想要的表现形式。同样的一个表现,也许他们的html完全不一样。

    这其实是对css的一种滥用,更是对重构的曲解。如果说你觉得用div布局了就算是重构了,那绝对是你的误解。当我们在切一个页面的时候,应该考虑的不仅仅是如果通过css来达到我们想要的效果,同时应该更进一步去想,如果去掉样式,它的表现形式会怎样。为什么在css****日,我们常常看到国外的网站常常会有很好的格局,而我们很多的网站却惨不忍睹呢?在认真学好css的同时,我们应该熟练地了解一下html本身的默认样式。

   首先,要说的是h标签,这个是标题标签,它有大字号,加粗,独占一行,有上下边距。很多时候,我们可能会用p,span或者是div设置字号,粗细和上下边距来完成这个表现形式,可是,一旦css去掉了,这些标签就没办法表现得像个标题了。它会淹没在大堆的文字中。如果用h标签,h1,h2,h3,而不是通过对p/span/div等标签设置字体大小精细的话,去css后,它就会很好地体现出标题的作用,以清晰的结构表现出文本之间的关系。所以,我们要尽量用h标签,不要用其它标签设置样式来达到显示成标题的目的。

   再来说说p,span和div。p和div是块级的,而span是内联的。如果我们在对一个标签使用css的float样式的时候,我们任选一个标签,在css可用的情况下它们的表现形式会一模一样,可是我们还要考虑去css的表现形式。如果某个地方我们觉得它去样式的时候应该内联比较好,就应该选用span而不是p和div,反之亦然。而p和div的选用问题上,也存在一个问题。因为我们大家在写css以前,一定会在最开始将一些默认样式去掉,比如说写成*{margin:0;padding:0}或者body,div,p,ul…..{margin:0;padding:0},所以在使用的标签的时候,用p和用div基本上没有样式上的区别。(当然,根据DTD声明,它们允许的嵌套元素是不的,这里我们仅指样式上的区别)。很多时候,为了图方便,我们都会选用万能的div,可是,去掉css的话,div默认是没有上下边距,而p是有上下边距的。也就是说,我们用一堆div用css设置上下边距,在样式可用的情况下,和用一堆p设置上下边距表现是一模一样的。可是,如果去样式,那么前者就是完全挤在一块儿的一堆元素,而后者却可以清晰地将每一块分离开来。所以,在使用span和p/div元素的时候,要考虑去样式时想让它内联还是另占一行。能用p的话,尽量用p,而不要用div。

    再来说说br标签。br标签是用来强制换行的。在重设p样式为margin:0;padding:0;以后,用两个p来包含两段文字和用br来分隔两段文字,表现形式是一模一样的。也许你想过在p元素上设置line-height,然后再来br标签来分隔两段文字,从而节约一个p标签的话,请注意,去css以后,用br来实现的换行是没有上下间距的,文字看起来很显得很挤。而用两个p来换行的,默认是有上下间距的,会让你的文字看起来更舒展。所以,如果没有特殊需求,尽量使用几个不同的p标签来实现文字的换行,不要用br来换行。

    最后还要说说strong标签。很多时候我们可能会用font-weight:bold,来帮助我们实现加粗效果。可是如果去掉样式的话,这些加粗就无影无踪了。而如果这些地方真的需要加以强调,我们可以用strong标签来包裹,而不是通过css来实现加粗,就可以在去样式的时候仍然让它显示为加粗状。这个元素也是非常实用的一个元素啊。

    除了样式的一些心得,再向你推荐一下好的调试方法。FF有一个很出名的插件叫做web developer,它可以很轻松地实现去样式。快捷键是ctrl+shift+s。点击之后就可以看到你的页面去样式之后会是什么样子。再按一次切换回来。所以呢,大家应该养成一个好习惯,在切页面的时候,不但要看IE和FF的兼容,还要在FF下ctrl+shift+s一下,看看你的页面去样式的可读性。

    下个css****日,你也会有一个漂亮的可读页面了,对不?
   



{八月 19, 2008}   布局小技巧 空格的妙用
    在布局的时候,我们经常会遇到这样的问题:文字之间有一点间距,可是打空格又不够,补转义空格&nbsp;又要补很多,因为一个&nbsp;占的位置实在太短了。还有时候,经常会遇到的问题,如下:
============================
物品名称:dfasisd
详细参数:dasi wfso
价格:sdfisfsd
============================
我们遇到这样的地方,前两个左边都是四个字"物品名称","详细参数",而最后一个价格却只有两个字,当然我们可以直接按上面的格式写出来,可是这样对不齐,不好看。如果要对齐,我们可以在价格中间不停地补&nbsp;直到和上面对齐,可是这种方法也不是很好用,因为中文和英文占的字节数不一样,很有可能怎么补&nbsp;最后也还是对不齐,差几象素。那么,我们还有一种做法,就是这样:
<li><span>物品名称:</span>dfasisd</li>
<li><span>详细参数:</span>dasi wfso</li>
<li><span>价格:</span>sdfisfsd</li>

li span{float:left;width:80px;}
给这几个左边的文字包一个span,设置为左浮动,然后给定一个宽度,这样,就会让冒号右边的文字左对齐。这当然是个办法,可是,还有一个更简单的办法,就是使用空格!

注意,这个空格不是一般的空格,而是圆角的空格,把输入法设置成圆角,再输入空格,就会把这个空格当做中文来用了,这个时候输入的空格就已经不再是正常的空格,它占的位置是一个中文的宽度,而且已经不受"输入多个连续空格只按一个空格显示"的约束了!我们可以在价格中间连续输入两个空格就可以轻松让他们对齐。而我们上面一开始提到的一段比普通空格长,又不算太长的间距,也可以通过连续输入适量空格解决了。唯一有点担心的就是程序员在配程序时,会不会把这些“空格”理解为你布局时留白的失误,而好心地优化山删除掉了,哈。

效果如下:
=======================================
物品名称:dfasisd
详细参数:dasi wfso
价  格:sdfisfsd
=======================================



{八月 19, 2008}   js,关于为DOM对象添加自定义属性

    DOM对象对于js来说,是个很基础的元素,我们写js一般来说,都一定会对它进行操作。我们可以很方便地给它加上自定义的属性,比如:

<div id="test" class="hello"></div>

var test = document.getElementById("test");

test.adang = "adang";

alert(test.adang);

我们会发现,已经给这个id为test的DOM元素添加了一个叫做adang的属性了,然后在js中,可以调用这个属性。我在写js的时候经常用到这种方法,可以很方便地对某个dom对象添加一些特殊的数据,感觉DOM对象就像一个很好用的容器,可以放一堆数据进去。

进一步想到一个问题,这些属性可以在js中添加,那么是否可以像flex一样,在标签中添加呢?事实上,像id啊,src啊这样的属性,都是可以在js中添加,也可以在标签上添加的,两种方式js都可以获取数据。这里要说一点,class比较特殊,标签中用的是class,在js中调用却要用className才行。

像id啊,title,src此类html中支持的属性,可以在标签中设置,然后js访问。那么,如果是像我上面例子中的adang这样自定义的属性呢?DOM可以访问吗?做了个实验,如下:

=======================test===========================

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
</head>
<script type="text/javascript">
window.onload=function(){
   var test = document.getElementById("test");
   test.adang = "adang";
   alert(test.adang);
}
</script>
<body>
<div id="test"></div>
</body>
</html>
=====================================================

用js来扩展自定义属性,结果很正常地输出了我们想要的结果,IE和FF下都正常。

然后我又写了第二段代码,如下:

=========================test==========================

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
</head>
<script type="text/javascript">
window.onload=function(){
   var test = document.getElementById("test");
   alert(test.adang);
}
</script>
<body>
<div id="test" adang="adang"></div>
</body>
</html>
=====================================================

这次把扩展的属性写到了html标签上。IE下正常输出adang,FF下输出的是undefined。

但是很奇怪的,如果使用DOM提供的方法getAttribute(""),无论是在IE下,还是FF下,都可以得到我们写在标签中的自定义属性。

所以,为了兼容,我们要使用getAttribute("")来获取自定义的标签属性的值。



{八月 14, 2008}   关于 getElementsByTagName

    .getElementById()不用多说,因为Id在一个页面内只会出现一次,所以这个返回值是唯一的。可是,.getElemensByTagName()就不一样了,因为标签名很可能会相同,所以返回的是一个数组。那么这个数组是如何取的呢,会否递归呢?

   做一个实验。如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<script type="text/javascript">
window.onload=function()
{
   var test = document.getElementById("test");
   var adang = test.getElementsByTagName("div");
   for(var i=0,n=adang.length;i<n;++i)
   {
    alert(adang[i].className);
   }
}
</script>
<body>
<div id="test">
<div class="a1">
   <div class="a2"><div class="a3"></div></div>
   <div class="a4"></div>
</div>
<div class="a5"></div>
</div>
</body>
</html>

如果.getElementsByTagName不能递归的话,那么就只会返回同在#test的标签根目录下的.a1和.a5了,如果能够递归的话,那么结果就是五个元素了。如果是后者,元素又是如何排列的呢?是先从儿子push起,然后再放孙子,孙子的儿子。。。还是把大儿子一家全push完,再push二儿子一家,三儿子一家呢?

我们运行一下程序就知道了,弹出的顺利是a1,a2,a3,a4,a5。也就是说,.getElementsByTagName方法会迭代,而且是大儿子一家,二儿子一家, 三儿子一家,一家一家顺序push完的。IE和FF下一致,都是如此。



{八月 14, 2008}   [转载 js]网站开发常用的一些值得珍藏的代码

     看到一不错的贴,虽然有些方法已经过时了,不过,还是有很多地方很有营养的,至少也能起到查询的作用。转过来贴上。

===============================================================================

标题:网站开发常用的一些值得珍藏的代码
摘要:
难度:

1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键<table border oncontextmenu=return(false)><td>no</table> 可用于Table  
2.<body onselectstart="returnfalse">取消选取、防止复制  
3.onpaste="returnfalse" 不准粘贴  
4. oncopy="return false;" oncut="return false;" 防止复制  
5. <link rel="Shortcut Icon" href="favicon.ico"> IE地址栏前换成自己的图标  
6. <link rel="Bookmark" href="favicon.ico"> 可以在收藏夹中显示出你的图标  
7.<input style="ime-mode:disabled"> 关闭输入法  
8. 永远都会带着框架  
<script language="Javascript"><!–  
if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页  
// –></script>  
  
9. 防止被人frame  
<script LANGUAGE=JAVAscript><!–   
if (top.location != self.location)top.location=self.location;  
// –></script>  
  
10. <noscript><iframe src=*.html></iframe></noscript> 网页将不能被另存为  
  
11. <input type=button value=查看网页源代码   
onclick="window.location = ‘view-source:’+ ‘http://www.csdn.net/’">  
  
12. 怎样通过asp的手段来检查来访者是否用了代理  
<% if Request.ServerVariables("HTTP_X_FORWARDED_FOR")<>"" then  
response.write "<font color=#FF0000>您通过了代理服务器,"& _  
"真实的IP为"&Request.ServerVariables("HTTP_X_FORWARDED_FOR")  
end if  
%>  
  
13. 取得控件的绝对位置  
  
//Javascript  
<script language="Javascript">  
function getIE(e){  
var t=e.offsetTop;  
var l=e.offsetLeft;  
while(ee=e.offsetParent){  
t+=e.offsetTop;  
l+=e.offsetLeft;  
}  
alert("top="+t+"\nleft="+l);  
}  
</script>  
  
//VBscript  
<script language="VBscript"><!–  
function getIE()  
dim t,l,a,b  
set a=document.all.img1  
t=document.all.img1.offsetTop  
l=document.all.img1.offsetLeft  
while a.tagName<>"BODY"  
set aa = a.offsetParent  
tt=t+a.offsetTop  
ll=l+a.offsetLeft  
wend  
msgbox "top="&t&chr(13)&"left="&l,64,"得到控件的位置"  
end function  
–></script>  
  
14. 光标是停在文本框文字的最后  
<script language="javascript">  
function cc()  
{  
var e = event.srcElement;  
var r =e.createTextRange();  
r.moveStart(‘character’,e.value.length);  
r.collapse(true);  
r.select();  
}  
</script>  
<input type=text name=text1 value="123" onfocus="cc()">  
  
15. 判断上一页的来源  
asp:  
request.servervariables("HTTP_REFERER")  
  
javascript:  
document.referrer  
  
16. 最小化、最大化、关闭窗口  
<object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">   
<param name="Command" value="Minimize"></object>  
<object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">   
<param name="Command" value="Maximize"></object>  
<OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">  
<PARAM NAME="Command" VALUE="Close"></OBJECT>  
  
<input type=button value=最小化 onclick=hh1.Click()>  
<input type=button value=最大化 onclick=hh2.Click()>  
<input type=button value=关闭 onclick=hh3.Click()>  
本例适用于IE  
  
17.   
<%  
‘定义数据库连接的一些常量  
Const adOpenForwardOnly = 0 ‘游标只向前浏览记录,不支持分页、Recordset、BookMark  
Const adOpenKeyset = 1 ‘键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark  
Const adOpenDynamic = 2 ‘动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览(ACCESS不支持)。  
Const adOpenStatic = 3 ‘静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动  
  
Const adLockReadOnly = 1 ‘锁定类型,默认的,只读,不能作任何修改  
Const adLockPessimistic = 2 ‘当编辑时立即锁定记录,最安全的方式  
Const adLockOptimistic = 3 ‘只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等  
Const adLockBatchOptimistic = 4 ‘当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的  
  
Const adCmdText = &H0001  
Const adCmdTable = &H0002  
%>  
  
18. 网页不会被缓存  
HTM网页  
<META HTTP-EQUIV="pragma" CONTENT="no-cache">  
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">  
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">  
或者<META HTTP-EQUIV="expires" CONTENT="0">  
ASP网页  
Response.Expires = -1  
Response.ExpiresAbsolute = Now() – 1  
Response.cachecontrol = "no-cache"  
PHP网页  
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");  
header("Cache-Control: no-cache, must-revalidate");  
header("Pragma: no-cache");  
  
怎样让表单没有凹凸感?  
<input type=text style="border:1 solid #000000">   
或  
<input type=text style="border-left:none; border-right:none; border-top:none; border-bottom: 1 solid #000000"></textarea>  
  
<div><span>&<layer>的区别?   
<div>(division)用来定义大段的页面元素,会产生转行   
<span>用来定义同一行内的元素,跟<div>的唯一区别是不产生转行   
<layer>是ns的标记,ie不支持,相当于<div>  
  
让弹出窗口总是在最上面:  
<body onblur="this.focus();">  
  
不要滚动条?   
让竖条没有:   
<body style=’overflow:scroll;overflow-y:hidden’>   
</body>   
让横条没有:   
<body style=’overflow:scroll;overflow-x:hidden’>   
</body>   
两个都去掉?更简单了   
<body scroll="no">   
</body>   
  
怎样去掉图片链接点击后,图片周围的虚线?  
<a href="#" onFocus="this.blur()"><img src=http://www.chinaitpower.com/A/2005-01-22/"logo.jpg" border=0></a>  
  
电子邮件处理提交表单  
<form name="form1" method="post" action="mailto:****@***.com" enctype="text/plain">   
<input type=submit>  
</form>  
  
在打开的子窗口刷新父窗口的代码里如何写?  
window.opener.location.reload()  
  
如何设定打开页面的大小  
<body onload="top.resizeTo(300,200);">  
  
在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动   
<html><head>   
<STYLE>   
body   
{background-image:url(logo.gif); background-repeat:no-repeat; background-position:center }   
</STYLE>   
</head>   
<body bgproperties="fixed" >   
</body>   
</html>   
  
19. 检查一段字符串是否全由数字组成  
<script language="Javascript"><!–  
function checkNum(str){return str.match(/\D/)==null}  
alert(checkNum("1232142141"))  
alert(checkNum("123214214a1"))  
// –></script>  
  
20. 获得一个窗口的大小  
document.body.clientWidth,document.body.clientHeight  
  
21. 怎么判断是否是字符  
if (/[^\x00-\xff]/g.test(s)) alert("含有汉字");  
else alert("全是字符");  
  
22.TEXTAREA自适应文字行数的多少  
<textarea rows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight">  
</textarea>  
  
23. 日期减去天数等于第二个日期  
<script language=Javascript>  
function cc(dd,dadd)  
{  
//可以加上错误处理  
var a = new Date(dd)  
aa = a.valueOf()  
aa = a – dadd * 24 * 60 * 60 * 1000  
a = new Date(a)  
alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() + "日")  
}  
cc("12/23/2002",2)  
</script>  
  
24. 选择了哪一个Radio  
<HTML><script language="vbscript">  
function checkme()  
for each ob in radio1  
if ob.checked then window.alert ob.value  
next  
end function  
</script><BODY>  
<INPUT name="radio1" type="radio" value="style" checked>Style  
<INPUT name="radio1" type="radio" value="barcode">Barcode  
<INPUT type="button" value="check" onclick="checkme()">  
</BODY></HTML>  
  
25.获得本页url的request.servervariables("")集合  
Response.Write "<TABLE border=1><!– Table Header –><TR><TD><B>Variables</B></TD><TD><B>Value</B></TD></TR>"  
for each ob in Request.ServerVariables  
Response.Write "<TR><TD>"&ob&"</TD><TD>"&Request.ServerVariables(ob)&"</TD></TR>"  
next  
Response.Write "</TABLE>"  
  
26.  
本机ip<%=request.servervariables("remote_addr")%>  
服务器名<%=Request.ServerVariables("SERVER_NAME")%>  
服务器IP<%=Request.ServerVariables("LOCAL_ADDR")%>  
服务器端口<%=Request.ServerVariables("SERVER_PORT")%>  
服务器时间<%=now%>  
IIS版本<%=Request.ServerVariables"SERVER_SOFTWARE")%>  
脚本超时时间<%=Server.scriptTimeout%>  
本文件路径<%=server.mappath(Request.ServerVariables("script_NAME"))%>  
服务器CPU数量<%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%>  
服务器解译引擎<%=scriptEngine & "/"& scriptEngineMajorVersion &"."&scriptEngineMinorVersion&"."& scriptEngineBuildVersion %>  
服务器操作系统<%=Request.ServerVariables("OS")%>  
  
27.ENTER键可以让光标移到下一个输入框  
<input onkeydown="if(event.keyCode==13)event.keyCode=9">  
  
28. 检测某个网站的链接速度:  
把如下代码加入<body>区域中:  
<script language=Javascript>  
tim=1  
setInterval("tim++",100)  
b=1  
  
var autourl=new Array()  
autourl[1]="www.njcatv.net"  
autourl[2]="javacool.3322.net"  
autourl[3]="www.sina.com.cn"  
autourl[4]="www.nuaa.edu.cn"  
autourl[5]="www.cctv.com"  
  
function butt(){  
document.write("<form name=autof>")  
for(var i=1;i<autourl.length;i++)  
document.write("<input type=text name=txt"+i+" size=10 value=测试中……> =》<input type=text name=url"+i+" size=40> =》<input type=button value=GO onclick=window.open(this.form.url"+i+".value)><br>")  
document.write("<input type=submit value=刷新></form>")  
}  
butt()  
function auto(url){  
document.forms[0]["url"+b].value=url  
if(tim>200)  
{document.forms[0]["txt"+b].value="链接超时"}  
else  
{document.forms[0]["txt"+b].value="时间"+tim/10+"秒"}  
b++  
}  
function run(){for(var i=1;i<autourl.length;i++)document.write("<img src=http://"+autourl+"/"+Math.random()+" width=1 height=1 onerror=auto(‘http://";+autourl+"’)>")}  
run()</script>  
  
29. 各种样式的光标  
auto :标准光标  
default :标准箭头  
hand :手形光标  
wait :等待光标  
text :I形光标  
vertical-text :水平I形光标  
no-drop :不可拖动光标  
not-allowed :无效光标  
help :?帮助光标  
all-scroll :三角方向标  
move :移动标  
crosshair :十字标  
e-resize  
n-resize  
nw-resize  
w-resize  
s-resize  
se-resize  
sw-resize

作者:吕海鹏
来自:it学习网原创
更新日志:
参考文档:
致谢:
讨论网址: http://bbs.deepteach.com
标签(Tags):网站开发常用的一些值得珍藏的代码
该文章转载自IT学习网:http://www.itstudy.cn/www/articleContent.asp?ID=38



{八月 12, 2008}   js 在线压缩混淆工具

     非常好用的压缩混淆工具。地址如下:http://dean.edwards.name/packer/

     jquery就是用这个压缩的。



{八月 12, 2008}   js 和 as 保留指定小数位数

    之前 我看过的所有js书中,没有一本提到过关于保留指定位数小数的方法。之前讲到这一块儿的时候,只会讲parseInt,parseFloat,Math.floor等等。之前在处理这个问题的时候,我不得不用slice来截取,这对于位数不确定的变量就很麻烦了,还没办法四舍五入。今天在《jQuery基础教程》上看到有一种Number类的方法叫做toFixed(num),就是用来保留小数位数的。其中,num就是要保留的小数位数。

简单试了一下,效果如下。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<script type="text/javascript">
var adang = 1.23456;
alert(adang);
adang = adang.toFixed(2);
alert(adang);
</script>
<body>
</body>
</html>

    结果很理想。然后我想js的孪生兄弟as中是不是有类似的用法呢?

    我输入了如下脚本,

var adang = 1.23456;
adang = adang.toFixed(2);
trace(adang);

    as2引擎中输出的是undefined,而as3引擎输出的是1.23。也就是说,as2不支持.toFixed()方法,而as3支持。




about

打造高品质的前端代码

pages
categories
archive
et cetera