Javascript利用方向键(上下键)控制表格的行选中(兼容各个浏览器)

[ad#content]这两天正在做一个通过Javascript实现用键盘的方向键来控制表格的行选中功能,自己写了个小脚本,放到这里方便以后使用。

这个脚本一共两个文件,首先是JS文件(tablecontrol.js):

  1. var currentLine=-1, offsetTr = 0;
  2. var $ =function(id){ return document.getElementById(id); }
  3. function keyDownEvent(e){
  4. var e = window.event||e;
  5. if(e.keyCode==38){
  6. offsetTr = 0;
  7. currentLine--;
  8. changeItem();
  9. }else if(e.keyCode==40){
  10. offsetTr = 150;
  11. currentLine++;
  12.         changeItem();
  13. }else if(e.keyCode==13&&currentLine>-1){
  14. addUser();
  15. }
  16. return false;
  17. }
  18. function changeItem(){
  19. if(!$('buddyListTable')) return false;
  20. var it = $('buddyListTable');
  21. if(document.all){
  22. it = $('buddyListTable').children[0];
  23. }
  24. changeBackground();
  25. if(currentLine<0) currentLine = it.rows.length-1;
  26. if(currentLine >= it.rows.length) currentLine = 0;
  27. it.rows[currentLine].className = "buddyListHighLight";
  28. if($('allBuddy')){
  29. $('allBuddy').scrollTop = it.rows[currentLine].offsetTop-offsetTr;
  30. }
  31. }
  32. function changeBackground(){
  33. var it = $('buddyListTable');
  34. if(document.all){
  35. it = $('buddyListTable').children[0];
  36. }
  37. for(var i=0; i<it .rows.length; i++){
  38. if(i%2==0){
  39. it.rows[i].className = "buddyListOdd";
  40. }else{
  41. it.rows[i].className = "buddyListEven";
  42. }
  43. }
  44. }
  45. function addUser(){
  46. var it = $('buddyListTable');
  47. if(document.all){
  48. it = $('buddyListTable').children[0];
  49. }
  50. var trBody = it.rows[currentLine].innerHTML;
  51. $('result').innerHTML = $('result').innerHTML+trBody;
  52. }

继续阅读

HTTP HEADER 变量意义一览表

HTTP HEADER 变量意义一览表
REMOTE_ADDR:扔出REQUEST的客户端IP地址(也可能是路由上最后一个Proxy)
REMOTE_HOST: 扔出REQUEST的客户端主机名(也可能是路由上最后一个Proxy)
REMOTE_USER:扔出REQUEST的客户端认证用户名
REMOTE_PORT:扔出REQUEST的客户端端口号
REMOTE_IDENT:扔出REQUEST的客户端用户名(支持IDENT协议的时候才有用)

HTTP_X_FORWARDED_FOR:接续的原始IP地址
HTTP_VIA:Proxy的信息
HTTP_FORWARDED:Proxy的URI、以及客户端的全域名(FQDN)
HTTP_CACHE_CONTROL:Cache的控制信息(比如 max-age=259200 最长时间)
HTTP_PROXY_CONNECTION:Proxy的接续状态
HTTP_SP_HOST:接续的原始IP地址
HTTP_CACHE_INFO:Cache信息
HTTP_CLIENT_IP:客户端IP(TrafficServer或者NetscapeProxy会使用此变量)
HTTP_MAX_FORWARDS:最多路经几个Proxy
继续阅读

visibility display 区别

大家知道在CSS中的隐藏内容有两种方法,一种是visibility:hidden,还有一种是display:none。查CSS手册发现这两个隐藏内容原来是有区别的,一种是保留对象的物理空间,一种是不保留。
——————————-
display:none
CSS1 隐藏对象。与 visibility 属性的hidden值不同,其不为被隐藏的对象保留其物理空间

visibility:hidden
对象隐藏,与 display 属性不同,此属性为隐藏的对象保留其占据的物理空间。
继续阅读

十条CSS常用技巧

英文原名 (Ten CSS tricks you may not know)
1.css字体简写规则
当使用css定义字体时你可能会这样做:
font-size:1em;
line-height:1.5em;
font-weight:bold;
font-style:italic;
font-variant:small-caps;
font-family:verdana,serif;
事实上你可以简写这些属性:
font: 1em/1.5em bold italic small-caps verdana,serif
现在好多了吧,不过有一点要注意:使用这一简写方式你至少要指定font-size和font-family属性,其他的属性(如font-weight, font-style,font-varient)如未指定将自动使用默认值。
继续阅读

使用 AllowScriptAccess 来控制 Flash 的对外脚本

Macromedia Flash Player 带有一个 AllowScriptAccess 参数,它可以用来控制是否允许执行来自 swf 本身对外脚本。这个特性需要 Flash Player 6.0.40.0 及其以上版本支持。
对外脚本通过使用特定的 FSCommand 或 getURL 命令来完成。
含有 Flash 动画的网页可以在 HTML 代码中为 Flash Player 设置参数(Internet Explorer 使用 PARAM 标记,而 Netscape Navigator 使用 EMBED 标记)。

AllowScriptAccess 参数可以有两个值: “always” 和 “never”:
继续阅读

滚动标记Marquee参数祥解及鼠标悬停

marquee的基本语法:<marquee> … </marquee>,与大多数HTML语法元素一样,它也是成双出现的,被修饰对象就放在起始符和终止符之间。而且它自己可以实现鼠标悬停的效果,下面解释一下各参数的含义:
align:是设定活动字幕的位置,除了居左、居中、居右三种位置外,又增加靠上(top)和靠下(bottom)两种位置。
Bgcolor:用于设定活动字幕的背景颜色,可以使用英文的单词也可以是十六进制数的。
Direction:用于设定活动字幕的滚动方向是向左(left)、向右(right)、向上(up)、向下(down)。
Behavior:用于设定滚动的方式,主要由三种方式:
     behavior=”scroll”表示由一端滚动到另一端;
     behavior=”slide”:表示由一端快速滑动到另一端,且不再重复;
     behavior=”alternate”表示在两端之间来回滚动。
继续阅读

HTML页面中各种滚动代码

在网站的首页中经常会用到一些滚动的文字,由于空间的固定,但是需要显示的内容比较多的时候,就需要使用滚动来显示了,这里集合了各个方向的滚动代码,而且并没有用HTML 的<MARQUEE>标签,而是用的javascript来实现的这样的效果,供大家参考:

<!–下面是向上滚动代码–>
继续阅读

HTML 显示Flash 标签的一些说明

要在浏览器中正确的显示Flash影片,网页应包含两个特定的标记来指定Flash文件打开和播放。这两个标签是: <OBJECT>和<EMBED>标签。
这两个标签是显示Flash的必须条件。因为<OBJECT>标记是保证Flash 能在Windows下的IE 正常工作,
而<EMBED>标记是保证Flash 能在网景浏览器或苹果浏览器 。这两个标签的作用是一样的,如果只使用一个标记可能会导致不兼容的一个浏览器。

继续阅读