龙哥博客

WOW!这是一个技术博客耶!

  • dinamic_sidebar 3 none

  • 简单的js过滤数组重复元素的方法

    js过滤数组重复元素:

    function filterArray(str,array){ //此函数为过滤数组中重复的元素,并不允许插入空值,函数返回数组

    var isnull = false;
    if(str == "" || str == null || str == 'undefined'){
    isnull = true;
    }
    var newnum = 0;
    var newarray = [];
    var num = array.length;
    if(num == 0){
    if(!isnull){
    newarray[num] = str;
    }
    }else{
    for(var m=0;m < num;m++){
    if(str == array[m]){
    break;
    }else{
    newarray[newnum++] = array[m];
    }
    }
    if(!isnull){
    newarray[newnum++] = str;
    }
    }
    return newarray;
    }

    此文为龙哥原创作品,转载请标明出处,另外最近正在研究谷歌地图,所以博客更新速度较慢,以后会出谷歌地图的使用说明及方法


  • 一个简单漂亮的js tooltip

    js:

    $(function(){
    enableTooltips();
    });

    function enableTooltips(id) {
    var links, i, h;
    if (!document.getElementById || !document.getElementsByTagName)
    return;
    AddCss();
    h = document.createElement("span");
    h.id = "btc";
    h.setAttribute("id", "btc");
    h.style.position = "absolute";
    document.getElementsByTagName("body")[0].appendChild(h);
    if (id == null)
    links = document.getElementsByTagName("a");
    else
    links = document.getElementById(id).getElementsByTagName("a");
    for (i = 0; i < links.length; i++) {
    Prepare(links[i]);
    }
    }
    function Prepare(el) {
    var tooltip, t, b, s, l;
    t= el.getAttribute("title");

    if (t == null || t.length == 0){
    t = "No Reslut";
    //        return;                                  注释掉这一行则不显示
    }
    el.removeAttribute("title");
    tooltip = CreateEl("span", "tooltip");
    s = CreateEl("span", "top");
    s.appendChild(document.createTextNode(t));
    tooltip.appendChild(s);
    b = CreateEl("b", "bottom");
    l=el.getAttribute("href");
    if(l.length>30) l=l.substr(0,27)+"...";
    b.appendChild(document.createTextNode(l));
    tooltip.appendChild(b);
    setOpacity(tooltip);
    el.tooltip = tooltip;
    el.onmouseover = showTooltip;
    el.onmouseout = hideTooltip;
    el.onmousemove = Locate;
    }
    function showTooltip(e) {
    document.getElementById("btc").appendChild(this.tooltip);
    Locate(e);
    }
    function hideTooltip(e) {
    var d = document.getElementById("btc");
    if (d.childNodes.length > 0)
    d.removeChild(d.firstChild);
    }
    function setOpacity(el) {
    el.style.filter = "alpha(opacity:95)";
    el.style.KHTMLOpacity = "0.95";
    el.style.MozOpacity = "0.95";
    el.style.opacity = "0.95";
    }
    function CreateEl(t, c) {
    var x = document.createElement(t);
    x.className = c;
    x.style.display = "block";
    return (x);
    }
    function AddCss() {
    var l = CreateEl("link");
    l.setAttribute("type", "text/css");
    l.setAttribute("rel", "stylesheet");
    l.setAttribute("href", "?.css");
    l.setAttribute("media", "screen");
    document.getElementsByTagName("head")[0].appendChild(l);
    }
    function Locate(e) {
    var posx = 0, posy = 0;
    if (e == null)
    e = window.event;
    if (e.pageX || e.pageY) {
    posx = e.pageX;
    posy = e.pageY;
    } else if (e.clientX || e.clientY) {
    if (document.documentElement.scrollTop) {
    posx = e.clientX + document.documentElement.scrollLeft;
    posy = e.clientY + document.documentElement.scrollTop;
    } else {
    posx = e.clientX + document.body.scrollLeft;
    posy = e.clientY + document.body.scrollTop;
    }
    }
    document.getElementById("btc").style.top = (posy + 10) + "px";
    document.getElementById("btc").style.left = (posx - 20) + "px";
    }

    css:

    .tooltip {
    width: 200px;
    color: #000;
    font: lighter 11px/ 1.3 Arial, sans-serif;
    text-decoration: none;
    text-align: center;
    word-break:break-all;word-wrap:break-word;
    }

    .tooltip span.top {
    padding: 30px 8px 0;
    background: url(../images/showtitle.gif) no-repeat top;
    }

    .tooltip b.bottom {
    padding: 3px 8px 15px;
    color: #548912;
    background: url(../images/showtitle.gif) no-repeat bottom;
    }

    html:

    <!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=gb2312" />
    <title>龙哥博客tooltip</title>
    <script src="http://www.52blogger.com/yczp/js/jquery.min.js" type="text/javascript"></script>
    <script src="http://www.52blogger.com/yczp/js/showtitle.js" type="text/javascript"></script>
    <link href="http://www.52blogger.com/yczp/css/showtitle.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <a title="龙哥博客tooltip" href="http://www.52blogger.com/">js tooltip</a>
    </body>
    </html>


    演示地址:http://www.52blogger.com/yczp/longblog_tooltip.html


  • 提高PHP编程效率的53个要点

    用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。
    1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。
    2、$row[’id’] 的速度是$row[id]的7倍。
    3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。
    4、在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。
    5、注销那些不用的变量尤其是大数组,以便释放内存。
    6、尽量避免使用__get,__set,__autoload。
    7、require_once()代价昂贵。
    8、include文件时尽量使用绝对路径,因为它避免了PHP去include_path里查找文件的速度,解析操作系统路径所需的时间会更少。
    9、如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME’]要好于time()。
    10、函数代替正则表达式完成相同功能。
    11、str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍。
    12、如果一个字符串替换函数,可接受数组或字符作为参数,并且参数长度不太长,那么可以考虑额外写一段替换代码,使得每次传递参数是一个字符,而不是只写一行代码接受数组作为查询和替换的参数。
    13、使用选择分支语句(译注:即switch case)好于使用多个if,else if语句。
    14、用@屏蔽错误消息的做法非常低效,极其低效。
    15、打开apache的mod_deflate模块,可以提高网页的浏览速度。
    16、数据库连接当使用完毕时应关掉,不要用长连接。
    17、错误消息代价昂贵。
    18、在方法中递增局部变量,速度是最快的。几乎与在函数中调用局部变量的速度相当。
    19、递增一个全局变量要比递增一个局部变量慢2倍。
    20、递增一个对象属性(如:$this->prop++)要比递增一个局部变量慢3倍。
    21、递增一个未预定义的局部变量要比递增一个预定义的局部变量慢9至10倍。
    22、仅定义一个局部变量而没在函数中调用它,同样会减慢速度(其程度相当于递增一个局部变量)。PHP大概会检查看是否存在全局变量。
    23、方法调用看来与类中定义的方法的数量无关,因为我(在测试方法之前和之后都)添加了10个方法,但性能上没有变化。
    24、派生类中的方法运行起来要快于在基类中定义的同样的方法。
    25、调用带有一个参数的空函数,其花费的时间相当于执行7至8次的局部变量递增操作。类似的方法调用所花费的时间接近于15次的局部变量递增操作。
    26、Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。尽量多用静态HTML页面,少用脚本。
    27、除非脚本可以缓存,否则每次调用时都会重新编译一次。引入一套PHP缓存机制通常可以提升25%至100%的性能,以免除编译开销。
    28、尽量做缓存,可使用memcached。memcached是一款高性能的内存对象缓存系统,可用来加速动态Web应用程序,减轻数据库负载。对运算码 (OP code)的缓存很有用,使得脚本不必为每个请求做重新编译。
    29、当操作字符串并需要检验其长度是否满足某种要求时,你想当然地会使用strlen()函数。此函数执行起来相当快,因为它不做任何计算,只返回在zval 结构(C的内置数据结构,用于存储PHP变量)中存储的已知字符串长度。但是,由于strlen()是函数,多多少少会有些慢,因为函数调用会经过诸多步骤,如字母小写化(译注:指函数名小写化,PHP不区分函数名大小写)、哈希查找,会跟随被调用的函数一起执行。在某些情况下,你可以使用isset() 技巧加速执行你的代码。
    (举例如下)
    if (strlen($foo) < 5) { echo “Foo is too short”$$ }
    (与下面的技巧做比较)
    if (!isset($foo{5})) { echo “Foo is too short”$$ }
    调用isset()恰巧比strlen()快,因为与后者不同的是,isset()作为一种语言结构,意味着它的执行不需要函数查找和字母小写化。也就是说,实际上在检验字符串长度的顶层代码中你没有花太多开销。
    34、当执行变量$i的递增或递减时,$i++会比++$i慢一些。这种差异是PHP特有的,并不适用于其他语言,所以请不要修改你的C或Java代码并指望它们能立即变快,没用的。++$i更快是因为它只需要3条指令(opcodes),$i++则需要4条指令。后置递增实际上会产生一个临时变量,这个临时变量随后被递增。而前置递增直接在原值上递增。这是最优化处理的一种,正如Zend的PHP优化器所作的那样。牢记这个优化处理不失为一个好主意,因为并不是所有的指令优化器都会做同样的优化处理,并且存在大量没有装配指令优化器的互联网服务提供商(ISPs)和服务器。
    35、并不是事必面向对象(OOP),面向对象往往开销很大,每个方法和对象调用都会消耗很多内存。
    36、并非要用类实现所有的数据结构,数组也很有用。
    37、不要把方法细分得过多,仔细想想你真正打算重用的是哪些代码?
    38、当你需要时,你总能把代码分解成方法。
    39、尽量采用大量的PHP内置函数。
    40、如果在代码中存在大量耗时的函数,你可以考虑用C扩展的方式实现它们。
    41、评估检验(profile)你的代码。检验器会告诉你,代码的哪些部分消耗了多少时间。Xdebug调试器包含了检验程序,评估检验总体上可以显示出代码的瓶颈。
    42、mod_zip可作为Apache模块,用来即时压缩你的数据,并可让数据传输量降低80%。
    43、在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情况下,尽量用file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题;
    44、尽量的少进行文件操作,虽然PHP的文件操作效率也不低的;
    45、优化Select SQL语句,在可能的情况下尽量少的进行Insert、Update操作(在update上,我被恶批过);
    46、尽可能的使用PHP内部函数(但是我却为了找个PHP里面不存在的函数,浪费了本可以写出一个自定义函数的时间,经验问题啊!);
    47、循环内部不要声明变量,尤其是大变量:对象(这好像不只是PHP里面要注意的问题吧?);
    48、多维数组尽量不要循环嵌套赋值;
    49、在可以用PHP内部字符串操作函数的情况下,不要用正则表达式;
    50、foreach效率更高,尽量用foreach代替while和for循环;
    51、用单引号替代双引号引用字符串;
    52、“用i+=1代替i=i+1。符合c/c++的习惯,效率还高”;
    53、对global变量,应该用完就unset()掉;


  • phpwind8.0版发布啦

    phpwind V8.0 beta 的数据表更改情况如下:

    修改:
    attachs  附件信息
    增加字段mid,表示消息id,`mid` int(10) unsigned not null default ’0′

    nav  自定义导航
    增加字段selflisttype,表示当前页排列方式,`selflisttype` VARCHAR( 10 ) NOT NULL DEFAULT ”;
    增加字段floattype,导航配置表浮动显示方式,`floattype` VARCHAR( 10 ) NOT NULL DEFAULT ”;
    增加字段listtype,导航配置表排列方式,`listtype` VARCHAR( 10 ) NOT NULL DEFAULT ”’;

    cmembers  群组成员信息
    修改字段introduce,简介,`introduce` VARCHAR( 255 ) NOT NULL;
    增加字段lastpost,群组里面会员的最后发言时间,`lastpost`INT( 11 ) UNSIGNED NOT NULL ;

    datanalyse  数据统计信息
    修改字段num,热榜缓存支持对于时间的排序,`num` INT( 10 ) NOT NULL DEFAULT ’0′;

    invokepiece  门户相关基础模块
    删除字段func
    删除字段rang
    增加字段config,模块表统一模块配置字段,`config` varchar(255) NOT NULL AFTER `action`;
    增加字段ifpushonly,是否只调用推送数据,`ifpushonly` TINYINT( 1 ) UNSIGNED NOT NULL;

    pushdata  模板自定义推送数据表
    删除字段title
    删除字段loopid
    增加字段ifbusiness,是否商业推送,`ifbusiness` TINYINT( 1 ) UNSIGNED NOT NULL ;
    增加字段pushtime,推送时间,`pushtime` INT( 10 ) UNSIGNED NOT NULL AFTER `titlecss` ;
    增加字段ifverify,是否通过推送审核,`ifverify` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT ’0′ AFTER `pushtime` ;
    删除字段invokename

    elements  元素表
    修改字段eid,增加元素表id的长度,`eid` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT;

    colonys  群组信息
    增加字段iftopicshowinforum,控制群组帖子是否显示在版块中,`iftopicshowinforum` TINYINT( 1 ) UNSIGNED DEFAULT ’1′ NOT NULL AFTER `activitynum` ;
    增加字段viewtype, 群组的展示类型 0:群组和论坛视图 1:论坛视图 2:群组视图,`viewtype` TINYINT( 1 ) NOT NULL ;
    修改字段ifopen, 话题浏览权限 0:仅群组成员 1:任何人,`ifopen` TINYINT( 1 ) NOT NULL DEFAULT ’1′ ;
    修改字段ifwriteopen, 记录浏览权限 0:仅群组成员 1:任何人,`ifwriteopen` TINYINT( 1 ) NOT NULL DEFAULT ’1′ ;
    增加字段ifmemberopen, 成员浏览权限 0:仅群组成员 1:任何人,`ifmemberopen` TINYINT( 1 ) NOT NULL DEFAULT ’1′ ;
    增加字段ifannouceopen, 公告浏览权限 0:仅群组成员 1:任何人,`ifannouceopen` TINYINT( 1 ) NOT NULL DEFAULT ’1′ ;
    删除字段albumopen
    增加字段titlefont,群组标题字体,`titlefont` varchar(255) NOT NULL DEFAULT ”;
    增加字段vieworder,关联版块的群组在版块中显示的顺序,`vieworder` TINYINT( 3 ) NOT NULL ;
    增加字段colonystyle,群组风格,`colonystyle` VARCHAR( 40 ) NOT NULL;
    增加字段ifshowpic,是否在帖子列表页以图文的方式显示群组链接,`ifshowpic` TINYINT( 1 ) NOT NULL ;
    增加字段 ifshow,群组链接是否在版块中显示,`ifshow` TINYINT( 1 ) NOT NULL ;
    增加字段visit,群组增加访问统计,`visit` INT( 11 ) DEFAULT ’0′ NOT NULL ;
    增加字段styleid,群组自有的分类表,`styleid` SMALLINT( 6 ) UNSIGNED NOT NULL DEFAULT ’0′;
    增加字段tnum,群组的主题数,`tnum` INT NOT NULL ;
    增加字段activitynum,群组活动数,`activitynum` INT( 10 ) NOT NULL AFTER `writenum`;
    增加字段pnum,群组的回复数,`pnum` INT( 10 ) UNSIGNED NOT NULL AFTER `tnum` ;
    增加字段photonum,更新群组相片数,`photonum` INT( 10 ) UNSIGNED NOT NULL AFTER `albumnum` ;
    增加字段todaypost,群组的当日发帖数,`todaypost` INT( 11 ) NOT NULL ;
    增加字段writenum,群组记录数,`writenum` INT( 10 ) NOT NULL AFTER `photonum`;

    cnalbum  群组相册
    修改字段aid,相册id增加范围,`aid`int(11) unsigned not null AUTO_INCREMENT;
    增加字段isdefault,默认相册标识字段,`isdefault` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT ’0′;
    增加字段memopen,群组相册是否允许群员上传字段 1:允许 0: 不允许,`memopen` TINYINT(1) NOT NULL DEFAULT ’1′;

    cnphoto  群组相片
    修改字段aid,相册id增加范围,`aid`int(11) unsigned not null AUTO_INCREMENT;

    memberdata  用户基本信息
    增加字段lastmsg,最后更新消息时间,`lastmsg` INT(10) UNSIGNED DEFAULT ’0′ NOT NULL;
    增加字段lastgrab,最后抓取时间,`lastgrab`int(10) unsigned not null default 0;

    argument  群组讨论区信息
    删除字段locked
    增加字段digest,群组自有的精华字段,`digest` TINYINT( 1 ) NOT NULL DEFAULT ’0′;
    增加字段locked,群组自有的锁定字段,`locked` TINYINT( 1 ) NOT NULL DEFAULT ’0′;
    增加字段titlefont,群组自有的加亮字段,`titlefont` VARCHAR( 15 ) NOT NULL ;
    增加字段toolfield,群组帖子管理有效期字段,`toolfield` VARCHAR( 21 ) NOT NULL ;

    增加:
    write_smiles 特殊表情表
    pageinvoke 门户频道模块配置表
    channel 门户频道表
    ms_tasks 消息中心任务表
    area_level 门户权限表
    ms_searchs 消息中心搜索关系表
    ms_attachs 消息中心数据表
    ms_configs 消息配置表
    ms_messages 消息体表
    ms_relations 消息关系表
    ms_replies 消息回复表
    cnlevel 群组等级表结构
    ms_replies 消息回复表
    group_replay 群组回复结构表
    cnstyles 群组自有的分类表
    cwritedata 群组记录表
    active 群组活动
    actmembers 群组活动报名
    actattachs 群组活动附件
    cnskin 群组记录表
    inviterecord 好友邀请宣传奖励记录表
    attention 朋友模板里,我关注的
    privacy 空间隐私表
    space 个人空间信息表

    删除:
    columns 团购活动主题表
    columns_content 团购活动主题表
    block 门户相关元素块,如最新主题等
    stamp 模式下的分类


  • php检测png图片是否完好

    <?php

    $filename = ‘./D243375_0.png’;

    $filename = realpath($filename);

    if (!file_exists($filename)) {
    die(“圖片不存在~!”);
    }

    $size = getimagesize ($filename);

    $file_extension = strtolower(substr(strrchr($filename,”.”),1));

    if(“image/png” != $size['mime'] || $file_extension != “png”){
    die(“這不是一張完整的png圖片~”);
    }

    $img = @imagecreatefrompng ($filename);

    if($img){
    ob_start(“output_handler”);

    imagepng($img);

    ob_end_flush();
    }else{
    die(“不能正確的創建png圖形,請檢查png圖形是否完好~”);
    }

    function output_handler($img) {
    header(‘Content-type: image/png’);
    header(‘Content-Length:’.strlen($img));
    return $img;
    }
    ?>


  • 一个另类的php文件上传的简单例子

    <?
    $data    = file_get_contents(“D:\works\logo.png”);             //原文件路徑
    $ifp        = fopen(“test.png”, “wb” );                           //打開新文件,如果不存在則創建文件
    fwrite( $ifp, $data);                      //将原文件的流写入到新的文件中
    fclose( $ifp );                            //關閉文件操作流
    ?>

    这样做虽然简单,但是会覆盖源文件,而且我感觉有时候用文件函数会出现不可预料的事件~


  • git使用教程

    取代码及修改全局设置

    设置用户名与邮箱

    1
    2
    git config --global user.name "My Name"
    git config --global user.email "my@email.com"

    从已有的git库中提取代码

    1
    git clone git@server:app.git myrepo

    每次更改代码的操作

    更新本地代码到最新版本(需要merge才能合到本地代码中)

    1
    git fetch

    合并更新后的代码到本地

    1
    git merge

    更新代码方式的另一种方法(git pull是git fetch和git merge命令的一个组合)

    1
    git pull

    修改代码后,查看已修改的内容

    1
    git diff --cached

    将新增加文件加入到git中

    1
    git add file1 file2 file3

    从git中删除文件

    1
    2
    git rm file1
    git rm -r dir1

    提交修改

    1
    git commit -m 'this is memo'

    如果想省掉提交之前的 git add 命令,可以直接用

    1
    git commit -a -m 'this is memo'

    commit和commit -a的区别, commit -a相当于:

    • 第一步:自动地add所有改动的代码,使得所有的开发代码都列于index file中
    • 第二步:自动地删除那些在index file中但不在工作树中的文件
    • 第三步:执行commit命令来提交

    提交所有修改到远程服务器,这样,其它团队成员才能更新到这些修改

    1
    git push

    其它常用命令

    显示commit日志

    1
    git log

    不仅显示commit日志,而且同时显示每次commit的代码改变。

    1
    git log -p

    回滚代码:

    1
    git revert HEAD

    你也可以revert更早的commit,例如:

    1
    git revert HEAD^

    将branchname分支合并到当前分支中。(如果合并发生冲突,需要自己解决冲突)

    1
    git merge branchname

    解决冲突

    当merge命令自身无法解决冲突的时候,它会将工作树置于一种特殊的状态,并且给用户提供冲突信息,以期用户可以自己解决这些问题。当然在这个时候,未发生冲突的代码已经被git merge登记在了index file里了。如果你这个时候使用git diff,显示出来的只是发生冲突的代码信息。

    在你解决了冲突之前,发生冲突的文件会一直在index file中被标记出来。这个时候,如果你使用git commit提交的话,git会提示:filename.txt needs merge

    在发生冲突的时候,如果你使用git status命令,那么会显示出发生冲突的具体信息。

    在你解决了冲突之后,你可以使用如下步骤来提交:

    第一步(如果需要增加文件):

    1
    git add file1

    第二步:

    1
    git commit

    收藏、分享这篇文章!

    Related posts:

    1. Git服务器安装 Git on Ubuntu Server 安装Git-Core: sudo apt-get update # 可选步骤…
    2. Git详解(一) 我用git最开始是在github,每次提交代码以后,右上角的部分就会显示这些信息,类似于下面的: commit  fa6f27b7de063c2f301b0e7148b5bd5e813faa98 tree       5e7a19c158b89fbc52a078771a833ee839727404 parent   76f31606376180ca88efa12be341dbb14fb06fdf 咋一看,这40位的乱码挺吓人的,但是你了解它的作用就不会被吓到了。 这是object name,是作为你每次提交的信息标识。这是用SHA1加密hash函数根据你的对象的内容算出来的。Git的一些优点:…
    3. Git详解(二) Git中级用法: Ignoring files 项目里总会出现你不想跟踪的文件。当然这些文件你不对它们进行git add操作就行了,但是这样也很麻烦, 如果使用git add .命令和git commit -a命令呢?你能告诉git去忽略一些文件,我们只需要在我们工作目录顶级创建一个.gitignore文件就可以了。就像这样:…
    4. Satellite: a self-syncing distributed wiki 介绍 satellite is a self-syncing distributed wiki with file uploads…

  • 网页编程实用的小技巧,很不错,分享了

    1. oncontextmenu=”window.event.returnValue=false” 将彻底屏蔽鼠标右键
    <table border oncontextmenu=return(false)><td>no</table> 可用于Table
    2. <body onselectstart=”return false”> 取消选取、防止复制
    3. onpaste=”return false” 不准粘贴
    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.51js.com/’”>
    12.删除时确认
    <a href=’javascript:if(confirm(“确实要删除吗?”))location=”boos.asp?&areyou=删除&page=1″‘>删
    除</a>
    13. 取得控件的绝对位置
    //Javascript
    <script language=”Javascript”>
    function getIE(e){
    var t=e.offsetTop;
    var l=e.offsetLeft;
    while(e=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 a = a.offsetParent
    t=t+a.offsetTop
    l=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. 判断上一页的来源
    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.屏蔽功能键Shift,Alt,Ctrl
    <script>
    function look(){
    if(event.shiftKey)
    alert(“禁止按Shift键!”); //可以换成ALT CTRL
    }
    document.onkeydown=look;
    </script>
    18. 网页不会被缓存
    <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″>
    19.怎样让表单没有凹凸感?
    <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>
    20.<div><span>&<layer>的区别?
    <div>(division)用来定义大段的页面元素,会产生转行
    <span>用来定义同一行内的元素,跟<div>的唯一区别是不产生转行
    <layer>是ns的标记,ie不支持,相当于<div>
    21.让弹出窗口总是在最上面:
    <body onblur=”this.focus();”>
    22.不要滚动条?
    让竖条没有:
    <body style=’overflow:scroll;overflow-y:hidden’>
    </body>
    让横条没有:
    <body style=’overflow:scroll;overflow-x:hidden’>
    </body>
    两个都去掉?更简单了
    <body scroll=”no”>
    </body>
    23.怎样去掉图片链接点击后,图片周围的虚线?
    <a href=”#” onFocus=”this.blur()”><img src=”logo.jpg” border=0></a>
    24.电子邮件处理提交表单
    <form name=”form1″ method=”post” action=”mailto:****@***.com” enctype=”text/plain”>
    <input type=submit>
    </form>
    25.在打开的子窗口刷新父窗口的代码里如何写?
    window.opener.location.reload()
    26.如何设定打开页面的大小
    <body onload=”top.resizeTo(300,200);”>
    打开页面的位置<body onload=”top.moveBy(300,200);”>
    27.在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动
    <STYLE>
    body
    {background-image:url(logo.gif); background-repeat:no-repeat;
    background-position:center;background-attachment: fixed}
    </STYLE>

    28. 检查一段字符串是否全由数字组成
    <script language="Javascript"><!--
    function checkNum(str){return str.match(//D/)==null}
    alert(checkNum("1232142141"))
    alert(checkNum("123214214a1"))
    // --></script>
    29. 获得一个窗口的大小
    document.body.clientWidth; document.body.clientHeight
    30. 怎么判断是否是字符
    if (/[^/x00-/xff]/g.test(s)) alert("含有汉字");
    else alert("全是字符");
    31.TEXTAREA自适应文字行数的多少
    <textarea rows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight">
    </textarea>
    32. 日期减去天数等于第二个日期
    <script language=Javascript>
    function cc(dd,dadd)
    {
    //可以加上错误处理
    var a = new Date(dd)
    a = a.valueOf()
    a = a - dadd * 24 * 60 * 60 * 1000
    a = new Date(a)
    alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() + "日")
    }
    cc("12/23/2002",2)
    </script>
    33. 选择了哪一个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>
    34.脚本永不出错
    <SCRIPT LANGUAGE="JavaScript">
    <!-- Hide
    function killErrors() {
    return true;
    }
    window.onerror = killErrors;
    // -->
    </SCRIPT>
    35.ENTER键可以让光标移到下一个输入框
    <input onkeydown="if(event.keyCode==13)event.keyCode=9">
    36. 检测某个网站的链接速度:
    把如下代码加入<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>
    37. 各种样式的光标
    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
    38.页面进入和退出的特效
    进入页面<meta http-equiv="Page-Enter" content="revealTrans(duration=x, transition=y)">
    推出页面<meta http-equiv="Page-Exit" content="revealTrans(duration=x, transition=y)">
    这个是页面被载入和调出时的一些特效。duration表示特效的持续时间,以秒为单位。transition表示使
    用哪种特效,取值为1-23:
    0 矩形缩小
    1 矩形扩大
    2 圆形缩小
    3 圆形扩大
    4 下到上刷新
    5 上到下刷新
    6 左到右刷新
    7 右到左刷新
    8 竖百叶窗
    9 横百叶窗
    10 错位横百叶窗
    11 错位竖百叶窗
    12 点扩散
    13 左右到中间刷新
    14 中间到左右刷新
    15 中间到上下
    16 上下到中间
    17 右下到左上
    18 右上到左下
    19 左上到右下
    20 左下到右上
    21 横条
    22 竖条
    23 以上22种随机选择一种
    39.在规定时间内跳转
    <META http-equiv=V="REFRESH" content="5;URL=http://www.51js.com">
    40.网页是否被检索
    <meta name="ROBOTS" content="属性值">
    其中属性值有以下一些:
    属性值为"all": 文件将被检索,且页上链接可被查询;
    属性值为"none": 文件不被检索,而且不查询页上的链接;
    属性值为"index": 文件将被检索;
    属性值为"follow": 查询页上的链接;
    属性值为"noindex": 文件不检索,但可被查询链接;
    属性值为"nofollow": 文件不被检索,但可查询页上的链接。


  • 转载一个很好的淘宝图片特效

    <!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=gb2312″ />
    <title>Oslide Demo</title>
    <link rel=”stylesheet” href=”http://demo.btorange.com/Oslide/style/index.css” type=”text/css” charset=”utf-8″ title=”main” />
    <script src=”http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js ” language=”javascript” type=”text/javascript”></script>
    <script src=”http://demo.btorange.com/Oslide/Oslide.js” language=”javascript” type=”text/javascript”></script>
    <script src=”http://demo.btorange.com/Oslide/easing.js” language=”javascript” type=”text/javascript”></script>
    <script language=”javascript” type=”text/javascript”>
    $(function() {
    var $o = $(“.j_Slide”);
    var ks = $o.find(“ol”).Oslide({
    slidetag:$o.find(“ol>li”),
    easing:”easeInOutCirc”,
    speed:450
    });
    var $p = $(“.j_Slide1″);
    var ks = $p.find(“ol”).Oslide({
    slidetag:$p.find(“ol>li”),
    btntag:$p.find(“.handel”),
    direct:’right’,
    easing:”easeInOutCirc”
    });
    });
    </script>
    </head>
    <body>
    <div>
    <ol>
    <li><a href=”http://btorange.com” target=”_blank”><img src=”http://demo.btorange.com/Oslide/images/ad_5.jpg” /></a></li>
    <li><a href=”http://btorange.com” target=”_blank”><img src=”http://demo.btorange.com/Oslide/images/ad_6.jpg” /></a></li>
    <li><a href=”http://btorange.com” target=”_blank”><img src=”http://demo.btorange.com/Oslide/images/ad_7.jpg” /></a></li>
    <li><a href=”http://btorange.com” target=”_blank”><img src=”http://demo.btorange.com/Oslide/images/ad_8.jpg” /></a></li>
    </ol>
    </div>

    <div>
    <div>
    <h3>最新商家</h3>
    <ul>
    <li><a href=”javascript:void(0)”>●</a></li>
    <li><a href=”javascript:void(0)”>●</a></li>
    <li><a href=”javascript:void(0)”>●</a></li>
    </ul>
    </div>
    <div>
    <ol>
    <li><a href=”http://btorange.com” target=”_blank”><img src=”http://demo.btorange.com/Oslide/images/ad_3.jpg” /></a><a href=”http://btorange.com” target=”_blank”><img src=”http://demo.btorange.com/Oslide/images/ad_1.jpg” /></a></li>
    <li><a href=”http://btorange.com” target=”_blank”><img src=”http://demo.btorange.com/Oslide/images/ad_2.jpg” /></a><a href=”http://btorange.com” target=”_blank”><img src=”http://demo.btorange.com/Oslide/images/ad_4.jpg” /></a></li>
    <li><a href=”http://btorange.com” target=”_blank”><img src=”http://demo.btorange.com/Oslide/images/ad_2.jpg” /></a><a href=”http://btorange.com” target=”_blank”><img src=”http://demo.btorange.com/Oslide/images/ad_4.jpg” /></a></li>
    </ol>
    </div>
    </div>
    </body>
    </html>

    演示地址:http://www.52blogger.com/yczp/longblog_tbtplb.html


  • 京东商城“商品抢购倒计时”代码特效

    <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
    <html>
    <head>
    <title>商品倒计时-51windows.Net</title>
    <meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″>
    </head>
    <body>
    <p>商品抢购倒计时中…</p>
    <p>此商品抢购时间还有<span id=”_lefttime” style=”color:red;font-size:18pt;”></span></p>
    <SCRIPT LANGUAGE=”JavaScript”>
    function _fresh()
    {
    var endtime=new Date(“December 20, 2010 20:00:00″);
    var nowtime = new Date();
    var leftsecond=parseInt((endtime.getTime()-nowtime.getTime())/1000);
    if(leftsecond<0){leftsecond=0;}
    __d=parseInt(leftsecond/3600/24);
    __h=parseInt((leftsecond/3600)%24);
    __m=parseInt((leftsecond/60)%60);//2008-3-12改正,原来将60写成24了
    __s=parseInt(leftsecond%60);
    document.getElementById(“_lefttime”).innerHTML=__d+”天 “+__h+”小时”+__m+”分”+__s+”秒”;
    }
    _fresh()
    setInterval(_fresh,1000);
    </SCRIPT>
    </body>
    </html>

    演示地址:http://www.52blogger.com/yczp/longblog_spdjs.html



  • dinamic_sidebar 4 none

©2012 龙哥博客 文章 (RSS) and 评论 (RSS) 加载博客产生 25 个查询,用时 0.365 秒