纯JavaScript实现一些小功能

题目链接:http://wenku.baidu.com/link?url=7Gbarr5q9X6h1QFRVAsHmfPp1xXagG209mvrJqBogseb4WLeRqbVKwxQieoh8SL0-BDawlYXYr4vY1TSxgxNtTJ2kRDGust7XVFSiKDbBZC

一、实时刷新(1秒)的时钟

需要注意的地方:

JavaScript代码放置的位置问题,如果放在body元素之前,可能会出现getElementById找不到id,这是可能容易忽略的地方。要是忽略了,可能会骂街。。

另外,注意一下setInterval函数的调用方法,怎么写是正确的,怎么写是错误的!!

其他的没什么,上代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>实时时钟显示</title>
    <style type="text/css">
        *{    margin:0px auto;
            padding:15px;
            color:#90F;
            text-align:center;}
    </style>
    <script type="text/javascript">

        var myDate=function()
                {
                    var date=new Date();
                    var year=date.getFullYear();
                    var month=date.getMonth();
                    var day=date.getDate();
                    var hours=date.getHours();
                    var minutes=date.getMinutes();
                    var seconds=date.getSeconds();
                    var str=year+‘年‘+month+‘月‘+day+‘日‘+‘   ‘+hours+‘时‘+minutes+‘分‘+seconds+‘秒‘;
                    var myClock=document.getElementById("clock");
                    myClock.innerHTML=str;
                };
        var timeOut=function()
                {
                    //这种写法错误   不能使用双引号
                    //window.setInterval("myDate()“,1000);    //注意这里不是setTimeout函数 以毫秒为单位
                    //写法错误  函数的小括号不能省略
                    //window.setInterval(‘myDate‘,1000);    //注意这里不是setTimeout函数 以毫秒为单位
                    //写法正确   注意使用的是单引号
                    //window.setInterval(‘myDate()‘,1000);    //注意这里不是setTimeout函数 以毫秒为单位
                    //下面的写法也可以  函数没有小括号
                    window.setInterval(myDate,1000);    //注意这里不是setTimeout函数 以毫秒为单位
                    //下面的写法也是可以的
                    //不过据说这时myDate()函数会立即执行  这个待研究
                    //window.setInterval(myDate(),1000);    //注意这里不是setTimeout函数 以毫秒为单位
                }
        window.onload=timeOut;
    </script>

</head>

<body>
    <h1>
        测试时间
        <p id="clock">
         </p>
    </h1>
</body>
</html>

运行截图:

二、生成10个100-1000之间的随机整数数

需要用的函数Math.random(),以及Math.floor()函数

参考网址:http://www.111cn.net/wy/js-ajax/57062.htm

Math.random()函数,默认生成的是介于0-1之间的随机小数,那如果按照题目的意思,我们就应该使用(Math.random()*(1000-100+1)+100),然后再取整,这样就可以达到我们的要求了。

代码:

for(var i=0;i<10;i++)
        {
            var temp=Math.floor(Math.random()*901+100);
            console.log(temp);
            document.write(temp+‘\t‘);
        }

运行截图:

三、一个简单的登陆表单验证代码段

JavaScript代码:

var check=function()
                {
                    var log_name=document.getElementById("log_name");
                    if(!log_name.value)
                        {alert("请输入用户名");}
                    var log_pass=document.getElementById("log_password");
                    if(!log_pass.value)
                        {alert("请输入密码");}
                }

html代码(这里我们暂时忽略css代码,我这里也确实没有写CSS代码来控制样式,这里它不是重点):

<form>
        <label>用户名:</label>
        <input id="log_name" type="text" placeholder="请输入用户名">
        <label>密&nbsp;&nbsp;码:</label>
        <input id="log_password" type="password" placeholder="请输入密码">
        <input type="submit" value="登陆" onClick="check()">
    </form>

运行截图,什么也不输入的时候,直接点击submit按钮:

这里啰嗦几句:

那就是如何检测输入框 的内容为空,我们分别测试一下以下几种情况:

‘’,“”,null,undefined

经过测试,只有“”和‘’,是可以成功检测的,当然按照刚刚上面的代码那样使用!符号测试也是可以的。

以下是测试代码,为了分别,我直接把代码也截到图里面了。

“”的情况:

‘’的情况:

null的情况(从截图中可以看出,用户名的输入框并没有被正确的检测出来):

undefined的情况(同样没正确检测出来):

四、cookie的使用(设置、获取以及有效期设置)

注意几点:

首先,cookie的设置和获取函数怎么实现的?

其次,有效期怎么设置(一个月)?

再次,使用正则表达式过滤字符串的空格时的注意事项。。。

代码:

<!DOCTYPE html>
<html>
    <head>
    <meta charset="utf-8">
    <Script type="text/javascript">
    function save()
    {
        if((document.myForm.uname.value)&&(document.myForm.upass.value))
        {
            if(confirm("是否保存用户名密码?"))
            {
                saveUserName();
                saveUserPass();
            }
        }
        else if(!document.myForm.uname.value)
        {
            alert("用户名不能为空!");
            document.myForm.uname.focus();
            //document.myForm.uname.select();
            return false;    //这句话不可少  否则输入焦点将不能定位到输入框  确切的说是定位了然后又移开了(过程一闪而过)
        }
        else if(!document.myForm.upass.value)
        {
            alert("密码不能为空!");
            //document.myForm.upass.select();
            document.myForm.upass.focus();
            return false;
        }
    }
    function saveUserName(){
        var userName =‘‘;
        userName = document.myForm.uname.value;
        var exp=new Date();
        exp.setTime(exp.getTime()+30*24*60*60*1000);    //设置过期时间为一个月
        document.cookie="un="+userName+";expires=" + exp.toGMTString(); ;
    }
    function saveUserPass(){
        var userPass =‘‘;
        userPass = document.myForm.upass.value;
        document.cookie="pwd="+userPass;
    }
    /*function getCookie(key,cookie){
        var r=new RegExp(key+‘=([^;]+)‘,‘i‘)
        var m=r.exec(cookie);
        if(m)return m[1];
        return ‘‘
    }*/

    function getCookie(key,cookie)
    {
        //var strCookie=document.cookie;    //获取cookie字符串
        var arrCookie=cookie.split(";");    //将多cookie切割为多个名/值对
        for(var i=0;i<arrCookie.length;i++)
        {
            var arr=arrCookie[i].split("=");
            //注意这里一定要有str来接收返回值  这里的正则表达式是不会改变arr[0]的值的      切结!!!!!
            str=arr[0].replace(/(^\s*)|(\s*$)/g,"");//正则表达式去掉字符串头和尾的空格
            if((key==str))
            {
                    return arr[1];
            }
        }
        return "";
    }

    function show(){
        var strCookie = document.cookie;
        var userName ;
        var userPass ;
        if(strCookie == null){                //cookie为空
            document.myForm.uname.value="";
            document.myForm.upass.value="";
        }else{

            userName = getCookie(‘un‘,strCookie);
            userPass = getCookie(‘pwd‘,strCookie);
            //alert(userPass);
            document.myForm.uname.value = userName;
            document.myForm.upass.value = userPass;
        }
    }
    </Script>
    <style type="text/css">
        *{
            margin:0 auto;
            padding:15px;
            color:#90F;}
    </style>
    </head>

    <body>

        <form action="test1.html" name="myForm" method="post">
            用户名:<input type="text" name="uname" placeholder="请输入用户名"/>
               密 &nbsp码:
            <input type="text" name="upass" placeholder="请输入密码"/><!--这里为了看到密码,故没有设置隐藏密码-->
            <br />
            <br />
            <input type="submit" name="submit" value="提交" onclick="return save()"/>
            <input type="button" value="自动填充用户名密码" onClick="show()"/>
            <input type="reset" name="reset" value="重置"/>

        </form>
    </body>
</html>

运行截图(IE11可以正常运行,但是chrome不行,不知道为什么。。。):

点击提交,会弹出保存密码对话框,选择确定,会跳转到另外一个页面。

顺便上一下另外一个页面的代码,便于实际测试运行(两个页面文件嬴荡放在同一目录下):

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>测试字符串</title>
        <script type="text/javascript">
            var s = " asd ddd bbb sss ";
            document.write(s.length+‘\n‘);
            document.write(s+‘\n‘);

            var reg = /\s/g;     //去掉所以的空格
            var ss = s.replace(reg, "");
            document.write(ss.length+‘\n‘);
            document.write(ss+‘\n‘);

            var reg=/(^\s*)|(\s*$)/g;    //去掉头尾的空格
            var ss = s.replace(reg, "");
            document.write(ss.length+‘\n‘);
            document.write(ss+‘\n‘);

        </script>
        <style type="text/css">
            *{
                margin:0 auto;
                padding:15px;
                color:#90C;
                text-align:center;}
        </style>
    </head>
    <body>

    </body>
</html>
时间: 2024-10-08 13:38:41

纯JavaScript实现一些小功能的相关文章

纯javascript写的table加载,包含分页、数据下载功能

直接先上效果图看看先. 首先简单说明一下,后面会给所涉及到的代码都贴上来的. 1.excel图标是一个用户控件,用来触发下载 2.首页.上页......每页多少条,这一块是一个整体,你可以选择放置在表格下面,或者表格上面都可以 3.表格则也是单独的一个,自己任意设置位置 4.复选框是否显示,自己设置,并可设置绑定的值,并有自带的方法可供你用于获取选中的复选框的对象跟值 5.表格的单行.双行.点击.悬浮.标题栏.表格的样式,都可以通过设置参数来修改,图为自带的效果 6.分页默认每页10行,分页的检

javascript实现的一个信息提示的小功能/

//什么状况.CSDN的排版怎么这么多状况,还是本人太次?调整几次都没弄好.最后一遍了-- 最近由于公司业务问题.须要做一些面向公众的平台,于是对UI要求会高一点, 对于传统的alert的这样的方式来提示用户操作错误显然会非常影响客户体验.于是做了一个小功能,来替代原本的alert.话不啰嗦,先上效果图. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDU3MTkxMw==/font/5a6L5L2T/fontsize/400/fill/I0

由Trust Wallet理解以OA信用盘平台出售带杀大赔小功能太坊钱包管理和智能合约

钱包管理钱包管理就要提到OA信用盘平台出售带杀大赔小功能QQ2952777280 话仙论坛http://hxforum.com 一个类EtherKeystore, 应用的核心业务的处理类, 有钱包管理(创建.删除.导入.导出).助记词转化.签名工作.私钥管理等功能.EtherKeystore中使用了由Trust开源的了两个库: TrustKeystore: 用于管理钱包的通用以太坊密钥库.TrustCore: 区块链核心的数据结构和算法.还有CryptoSwift, 一个标准的安全加密算法集合的

javascript日历控件——纯javascript版

平时只有下班时间能code,闲来写了个纯javascript版.引用该calendar.js文件,然后给要设置成日历控件的input的id设置成calendar,该input就会变成日历控件. <!doctype html> <html> <head> <meta charset="utf-8"> <title>日历控件</title> <script src="js/calendar.js&quo

( 译、持续更新 ) JavaScript 上分小技巧(二)

考虑到文章过长,不便于阅读,这里分出第二篇,如有后续,每15个知识点分为一篇... #29 - 使用缓存的记忆让递归函数加速运行波非那切数列(Fibonacci sequence)想必大家都不陌生(针对学霸而言,在这之前本兽完全不知道这是个什么鬼,虽然经常会用到递归),我们可以在20秒内写出以下的函数: var fibonacci = function(n){ return n < 2 ? n : fibonacci(n-1) + fibonacci(n-2); } 它确实是运行了,但是效率并不

Highcharts是一个制作图表的纯Javascript类库

Highcharts是一个制作图表的纯Javascript类库,主要特性如下: 兼容性:兼容当今所有的浏览器,包括iPhone.IE和火狐等等: 对个人用户完全免费: 纯JS,无BS: 支持大部分的图表类型:直线图,曲线图.区域图.区域曲线图.柱状图.饼装图.散布图: 跨语言:不管是PHP.Asp.net还是Java都可以使用,它只需要三个文件:一个是Highcharts的核心文件highcharts.js,还有a canvas emulator for IE和Jquery类库或者MooTool

Javascript的一些小知识点

小弟五一回家去了,本想好好的享受下五一假期,谁知悲剧的人生不需要解释.好不容易过五关斩十将,跨千山趟万水,回到家里.吃着老妈做的好菜,第二天就莫名其妙的急性肠炎,这肚子闹腾的.NND,气死哥了,早知道就不回家了.好了,废话不多说,进入主题. ================ 关于clientHeight.offsetHeight.scrollHeight window.screen.availWidth 返回当前屏幕宽度(空白空间) window.screen.availHeight 返回当前屏

开发用到的小功能、功能、网站等

平时用到的比较好的工具或网站,收藏以备使用. 网站: 1.验证json.加密等开发实用的小功能集合: http://www.bejson.com/ 2.JavaScript离线代码检查工具——JSLintMate http://ace.acejoy.com/thread-4450-1-1.html (出处: ACE Developer) 3.json 自动生成测试数据网页: http://beta.json-generator.com/NkflPxI7b

JavaScript性能优化小窍门实例汇总

JavaScript性能优化小窍门实例汇总在众多语言中,JavaScript已经占有重要的一席之地,利用JavaScript我们可以做很多事情 , 应用广泛.在web应用项目中,需要大量JavaScript的代码,将来也会越来越多. 但是由于JavaScript是一个作为解释执行的语言,而且它的单线程机制,决定了性能问题是JavaScript的弱点,也是开发者在写JavaScript的时候需注意的一个问题. 因为经常会遇到Web 2.0应用性能欠佳的问题,主因就是JavaScript性能不足,导