工作笔记——前端

1、把一串数字转换成标准时间格式

     var date = 20161203181611;
     var result = date.ToString("####-##-## ##:##:##");

2、js验证手机号码

function checkPhone(){ 
    var phone = document.getElementById('phone').value;
    if(!(/^1[34578]\d{9}$/.test(phone))){ 
        alert("手机号码有误,请重填");  
        return false; 
    } 
}

 3、双引号和单引号嵌套问题!在下面的代码中,onclick属性的值中转义字符'\'只对单引号' 起作用,因为最外层用的是双引号",转义字符就不再对双引号\"起作用

<a onclick="GetCars('22','2'),copyTXT('46<span style=\'color:red\'>7</span>456<span style=\'color:red\'>7</span>')">(1)</a>
<a onclick="GetCars('22','2'),copyTXT('46<span style=\"color:red\">7</span>456<span style=\"color:red\">7</span>')">(1)</a>

4、正则表达式验证输入内容为小数位不超过2位的数值:var reg = /^\d{0,8}\.{0,1}(\d{1,2})?$/

5、浏览器跨域的解决方式有很多种(注意:跨域限制访问,其实是浏览器的限制):

       1.jsonp 需要目标服务器配合一个callback函数。

  2.window.name+iframe 需要目标服务器响应window.name。

  3.window.location.hash+iframe 同样需要目标服务器作处理。

  4.html5的 postMessage+ifrme 这个也是需要目标服务器或者说是目标页面写一个postMessage,主要侧重于前端通讯。

  5.CORS  需要服务器设置header :Access-Control-Allow-Origin。

  6.nginx反向代理 这个方法一般很少有人提及,但是他可以不用目标服务器配合,不过需要你搭建一个中转nginx服务器,用于转发请求。

6、js 时间转化为几天前、几小时前、几分钟前

function getDateDiff(dateTimeStamp){
    var minute = 1000 * 60;
    var hour = minute * 60;
    var day = hour * 24;
    var halfamonth = day * 15;
    var month = day * 30;
    var now = new Date().getTime();
    var diffValue = now - dateTimeStamp;
    if(diffValue < 0){return;}
    var monthC =diffValue/month;
    var weekC =diffValue/(7*day);
    var dayC =diffValue/day;
    var hourC =diffValue/hour;
    var minC =diffValue/minute;
    if(monthC>=1){
        result="" + parseInt(monthC) + "月前";
    }
    else if(weekC>=1){
        result="" + parseInt(weekC) + "周前";
    }
    else if(dayC>=1){
        result=""+ parseInt(dayC) +"天前";
    }
    else if(hourC>=1){
        result=""+ parseInt(hourC) +"小时前";
    }
    else if(minC>=1){
        result=""+ parseInt(minC) +"分钟前";
    }else
    result="刚刚";
    return result;
}

  7、js 将从后台得到的时间戳(毫秒数)转换为日期格式

function getDate(time) {
            var unixTimestamp = new Date(time * 1000);
            commonTime = unixTimestamp.getFullYear() + "-" + (unixTimestamp.getMonth() + 1) + "-" + unixTimestamp.getDate() + " " + unixTimestamp.getHours() + ":" + unixTimestamp.getMinutes() + ":" + unixTimestamp.getSeconds();
            alert(commonTime);
        }

 8、js 清除iframe父级的Cookie

function delCookie(time) {
        var myDate = new Date();
        myDate.setTime(-1000);//设置时间    
        parent.document.cookie = time + "=;expires=" + myDate.toGMTString();
        //document.cookie = time + "=;expires=" + myDate.toGMTString();
}

 9、return false 阻止a标签跳转,但是有target标签的话就无法阻止a跳转了

<a href="javascript:void(0)" onclick="return checkData()">content</a>
<a href="javascript:void(0)" target="_blank" onclick="return checkData()">content</a>

10、设置表格table边框样式

table {
        width:100%;
        border:solid #ccc; border-width:1px 0px 0px 1px;
    }

11、Fiddler模拟post请求时Header需要增加Content-Type,格式有四种:分别是application/x-www-form-urlencoded(这也是默认格式)、application/json、text/xml以及multipart/form-data格式

12、WdatePicker时间格式设置:

<input type="text" class="form-control" id="friendendDate" name="friendendDate" value="" style="height:30px;width:150px" onfocus="WdatePicker({ startDate: '%y-%M-%d %H:%m:%s', dateFmt: 'yyyy-MM-dd  HH:mm:ss', alwaysUseStartDate: true })" />

13、JQuery对象的each方法中 return false 或者 break 都没有用,得设置个标记

$('.weixin').each(function () {
            var text = $(this).parent().siblings().eq(2).find('input[type="text"]');
            if (($(this).val() != "" && text.val() != "" && text.val() != "0") || ($(this).val() == "" && text.val() == "")) {

            } else {
                alert("数据不完整");
                //return false;
                flag = false;
                return;
            }
        });

 14、<a>标签不能用 $('#test').click() 事件模仿点击

<a href="www.baidu.com" id="test"></a>

15、打开QQ聊天窗口:

  1、打开会话代码:tencent://Message/?Uin=9002327&websiteName=www.fgwz.la&Menu=yes【红色部分改成自己的qq】

  2、强制添加好友的代码:tencent://AddContact/?fromId=45&fromSubId=1&subcmd=all&uin=9002327&website=www.fgwz.la

  3、谈出聊天窗口页面:window.open ("page.html", "newwindow","height=100, width=400, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no")

16、直接调用selectChange("Init"),函数接收到的第一个参数是string类型的Init,如果通过动态绑定事件来调用方法,则函数接收的第一个参数是event对象。

    selectChange("Init");
    $('#pname').on('change',selectChange);
    function selectChange(value) {
        if (typeof value == "string") {
            $('#name').val(value);
            selectChangeNames(true);
        }else if(typeof value == "object"){                   
            selectChangeNames(false); 
        } else{
            alert("参数有误")
        }
    }     

 18、枚举类型转换成字典

var states = typeof(ServiceConfig.DealState).ToDictionary().Select(w => new SelectListItem() { Text = w.Key, Value = w.Value }).ToList();

19、td内容不换行

<td style="white-space: nowrap;">@item.uname</td>

 20、jquery find 和 filter:

  find()会在div元素内寻找class为rain 的元素,是对它的子集操作
  filter()则是筛选div的class为rain的元素,是对它自身集合元素筛选

21、

posted @ 2016-12-14 18:07  望峰游云  阅读(339)  评论(0编辑  收藏  举报