04

关于开发Google+以及Facebook第三方登录

简述

最近项目中有关于第三方授权登陆的需求,第三方Facebook以及Google +登录。

正好这几天把这个需求做得差不多了,收个尾,作为一个这方面之前基本从未涉及的小白,总结下开发流程以及过程中遇到的一些问题。希望能对大家有所帮助。

基本上,目前互联网上的涉及到第三方登录采用的都为OAuth认证方式,相关原理以及实现方法相关的可以网上搜索查看。不过涉及到Facebook以及Google +的登陆,最大的问题是这两个网站在墙外,想FQ找资料比较费劲,奈何国内这方面的资料也不是很齐全,翻到的官方的文档又全是英文的,阅读无能~

第三方登陆简单可以分为以下几个步骤,分别是:获得第三方登陆许可认证根据规范添加页面登录样式和js实现,跳转到第三方登陆页面登陆并获取授权后,返回原指定页面(或请求)后台对登录信息进行校验,并获取对应第三方登陆用户的信息将第三方用户信息与本系统用户进行关联

下面就以上几个步骤的一些关键信息,或者说是我开发当中遇到的问题做一下简要的记录。因为Facebook以及Google +第三方登陆都采用的是Auth2技术,因此只会在具体实现不同的地方单独说明。理解有误的地方,或者是没有说全的地方,还请各位谅解~ Continue reading

15

原生JS复制文本到手机剪切板

复制文本到剪切板,兼容PC与WAP,复制文本到手机剪切板,兼容电脑与手机移动设备

方法一:

方法二:

 

十二 11

使用iframe给页面的localStorage扩容

浏览器提供的localStorage本地存储的最大空间是5M,如果不够用呢,这时候就需要考虑来给localStorage扩容。

思路如下:

  1. 在【A域】下引入【B域】,【A域】空间足够时,读写由【A域】来完成,数据存在【A域】下;当【A域】空间不够时,读写由【B域】来完成,数据存在【B域】下
  2. 【A域】空间不够需要在【B域】读写时,通过postMessage 向【B域】发送跨域消息,【B域】监听跨域消息,在接到指定的消息时进行读写操作
  3. 【B域】接到跨域消息时,如果是写入删除可以不做什么,如果是读取,就要先读取本域本地数据通过postMessage向父页面发送消息
  4. 【A域】在读取【B域】数据时就需要监听来自【B域】的跨域消息 Continue reading
十二 11

js中子框架和父框架的通信iframe

iframe父子框架通信

1.获取父框架的内容

window.parent.name;//name为你要获取的值的名称

parent.document.getElementById(“id”); //根据id获取父框架对象

parent.document.getElementByTagName(“name”); //根据name获取父框架对象

2.获取子框架的内容

document.getElementById(“id”).contentWindow.document.getElementById(“childId”);

根据子窗口Id获取子框架内容,根据子框架的childId,获取框架对象。

document.getElementById(“id”).contentWindow可以获得子窗口的window对象 Continue reading

十二 04

原生js封装ajax:传json,str,excel文件上传表单提交

封装ajax,ajax封装,原生js

由于项目中需要在提交ajax前设置header信息,jquery的ajax实现不了,我们自己封装几个常用的ajax方法。

jQuery的ajax普通封装

原生ajax封装,设置header,传json Continue reading

十二 04

javascript中for循环,同步阻塞式解决方案(for同步)

利用闭包原理实现javascript中for同步阻塞式,for同步

 

十一 30

jquery.lazyload.js 已封装

jquery.lazyload.js封装下载

Lazy Load是一个用js编写的jQuery插件,用来实现图片的延迟加载。只有在浏览器可视区域的图片才会被加载,没有滚动到的区域img标签上会有一个占位图片,而真实图片不会被载入。当页面比较长,图片比较多的时候,延迟加载图片可以加快页面加载速度,在某些情况下降低服务器负担。

使用方法

1、lazyload.js依赖jquery或者zepto.js。

2、将图片的真实路径放在img的data-original属性上。给img标签增加一个自定义的类名如:lazyload,方便js调用。 Continue reading