zoukankan      html  css  js  c++  java
  • JStips

    1.addEventListener(String,Function,boolean)

    当boolean为true就在捕获过程中执行,反之就在冒泡过程中执行处理函数。

    2.观察者的使用场合就是:当一个对象的改变需要同时改变其它对象,并且它不知道具体有多少对象需要改变的时候,就应该考虑使用观察者模式。

    创建一个观察者对象

    var observer = new Observer();

    通过调用subscribe方法,实现一个事件的观察

    observer.subscribe("任务名",处理函数)

    通过publish触发观察事件,在任意时刻触发了这个观察的任务名,将会触发这个事件订阅subscribe方法

     observer.publish("任务名")

    取消事件订阅,意味着就不会执行了

     observer.unsubscribe("任务名")

    3. Promise 是一种令代码异步行为更加优雅的抽象

    var dtd = $.Deferred();  //创建
    dtd.resolve();          //成功
    dtd.then()              //执行回调

    4.location.search 属性

    Location 对象的 search 属性用于设置或取得当前 URL 的查询字串(? 符号及后面的部分),语法如下:

    location.search = search

     5.jquery下获取touch事件的pageX:event.originalEvent.targetTouches[0].pageX

     6.微信分享自定义三种方式:

    (1)在页面顶部放置一张大于300*300像素的图片,作为描述图,微信会自动抓取;

    (2)加入如下代码;

     var share_config = {
        img_url: data.shareImage,
        sharetitle: data.title,
        sharedesc:data.desc,
        link:location.href
    };
    document.addEventListener("WeixinJSBridgeReady", function onBridgeReady(){
        // 发送给好友
        WeixinJSBridge.on('menu:share:appmessage', function(argv){
            WeixinJSBridge.invoke('sendAppMessage',{
                "appid"      : '',
                "img_url"    : share_config.img_url,
                "img_width"  : "640",
                "img_height" : "640",
                "link"       : location.href,
                "desc"       : share_config.sharedesc,
                "title"      : share_config.sharetitle
            }, function(res) { });
        });
        // 分享到朋友圈
        WeixinJSBridge.on('menu:share:timeline', function(argv){
            WeixinJSBridge.invoke('shareTimeline',{
                "appid"      : '',
                "img_url"    : share_config.img_url,
                "img_width"  : "640",
                "img_height" : "640",
                "link"       : location.href,
                "desc"       : share_config.sharedesc,
                "title"      : share_config.sharetitle
            }, function(res) { });
        });
    }, false);   
    

    (3)根据微信开发者平台,引入<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js" ></script> 

    var WxJssdk = {
    	init:function(){
    		$.ajax({
    			url:'/x_getWeixinJssdk',
    			dataType:'jsonp',
    			data:{link:encodeURIComponent(location.href.split('#')[0])},
    			success:WxJssdk.callback
    		});
    	},
    	callback:function(data){
    		wx.config({
    		    debug: false,
    		    appId: data.appId,
    		    timestamp: data.timestamp,
    		    nonceStr: data.nonceStr,
    		    signature: data.signature,
    		    jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage']
    		});
    		wx.ready(function(){
    			WxJssdk.shareTimeline();
    			WxJssdk.shareAppMessage();
    		});
    	},
    	shareTimeline:function(){
    		var title = videoTitle;
    		if(playmode ==3 && typeof(showTitle) != "undefined" && showTitle!=""){
    			title = showTitle;
    		}
    		if(pv>10000){
        		var num = Math.round(pv/10000);
        		title = '「'+num+'万小伙伴正在看」'+title;
        	}
    		wx.onMenuShareTimeline({
    		    title: title,
    		    link: location.href,
    		    imgUrl: $("#weixinshare").attr("desktopIco") || 'http://static.youku.com/index/img/mobile/youkologo_300x300.png',
    		    success: function () {Log.log(1,"tp=1&cp=4010832&cpp=1000962",1);},
    		    cancel: function () {Log.log(1,"tp=1&cp=4010833&cpp=1000962",1);}
    		});
    	},
    	shareAppMessage:function(){
    		var desc = $("#weixinshare").html();
    		desc = desc.replace(/<\/?[^>]*>/g,'');
    		desc = desc.substring(0,100);
    		wx.onMenuShareAppMessage({
    		    title: playmode == 3 && typeof(showTitle) != "undefined" && showTitle!="" ? showTitle : videoTitle,
    		    desc: desc || '该视频来自「优酷」中国领先的视频网站,为您提供高清,流畅的视频体验',
    		    link: location.href,
    		    imgUrl: $("#weixinshare").attr("desktopIco") || 'http://static.youku.com/index/img/mobile/youkologo_300x300.png',
    		    success: function () {Log.log(1,"tp=1&cp=4010830&cpp=1000962",1);},
    		    cancel: function () {Log.log(1,"tp=1&cp=4010831&cpp=1000962",1);}
    		});
    	}
    };
    WxJssdk.init();
    

    7.字符串作为 URI 进行编码  

    encodeURI() 函数:该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
    encodeURIComponent() 函数:该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。 其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。
    区别在于后者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串),因此将转义用于分隔 URI 各个部分的标点符号。

    escape() 函数:该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换。不推荐使用。

    8.获取服务器时间戳:

    var timstamp = new Date().valueOf();
    var systemTime = new Date($.ajax({url:"?t="+timstamp,async: false}).getResponseHeader("Date"));
    return systemTime.valueOf();

    9.获取本地时间戳

    Date.parse(new Date()) //毫秒改成000显示
    (new Date()).valueOf()等同于new Date().getTime() //ok
    

    10.用js设置title或者meta值,需加下面代码才能生效 

    var $iframe = document.createElement("iframe");
    $iframe.src="images/favicon.ico";
    $iframe.style.display="none";
    $iframe.onload = function(){
          setTimeout(function() {
                 document.body.removeChild($iframe);
          }, 0);
    };
    document.body.appendChild($iframe);
    

      

      

     




  • 相关阅读:
    Dump 文件生成与分析
    打造支持apk下载和html5缓存的 IIS(配合一个超简单的android APP使用)具体解释
    GridView编辑删除操作
    google域名邮箱申请 gmail域名邮箱申请(企业应用套件)指南
    nvl,空时的推断和取值
    如何将图片保存至自定义分组
    Java实现 蓝桥杯VIP 算法训练 集合运算
    Java实现 蓝桥杯VIP 算法训练 瓷砖铺放
    Java实现 蓝桥杯VIP 算法训练 瓷砖铺放
    Java实现 蓝桥杯VIP 算法训练 集合运算
  • 原文地址:https://www.cnblogs.com/lixuemin/p/5076119.html
Copyright © 2011-2022 走看看