关于 ES6 中的箭头函数

最近在看 ES6 的内容,遇到箭头函数(Arrow Function),便忍不住做些尝试,其实箭头函数在 c# 和 java 8.0 中早已普及,也就是所谓的 lambda 表达式,接下去我们会尝试一些箭头函数的定义和使用,若是有错误的地方,还请大家不吝赐教~

阅读更多

简单尝试下 JS 中点击(单击)事件的触发顺序

最近突发奇想,要是在同一个元素上同时绑定不同的点击事件(同一时刻触发),此时就有必要明确同一次点击事件时各个事件的触发顺序,这边先从简单的尝试起

阅读更多

CSS 实现元素垂直居中

44 年前人类就已经登上了月球,但现在我们仍然无法在 CSS 中实现垂直居中。

阅读更多

解决 HTML5 Canvas 在高分屏下的模糊问题

开发过手机 canvas 应用的同学们应该都知道,canvas 在高分屏下,尤其是手持设备,如搭载高分屏的手机平板等,其显示效果会变得模糊,带给用户的体验很不好,故此研究下如何解决这个问题。

阅读更多

CSS 改变选中时改变选中文字的颜色及背景色

一般情况下,我们选中的网页的文本都是深蓝的底色,白色的字体(windows 下),黑色的字体(mac os 下),如下所示:

阅读更多

Javascript 跨域(七) 之 postMessage

postMessage 方法允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文本文档、多窗口、跨域消息的传递。MDN介绍

阅读更多

Javascript 跨域(六)之 document.domain + iframe

对于主域相同而子域不同的情况,可以通过设置 document.domain 的办法来解决。
具体的做法我们可以在 http://www.shenyujie.com/a.htmlhttp://m.shenyujie.com/b.html 下面共同设置 document.domain = ‘shenyujie.com’,然后在 a.html 下面创建一个隐藏的 iframe,去控制 iframe 的contentDocument,这样我们就可以实现交互了

阅读更多

Javascript 跨域(五)之 window.location.hash + iframe

上一次我们介绍了如何使用 window.name + iframe 来跨域,其中我们碰到了同源政策所带来的阻碍,但借助于重定向 src ,我们最终还是成功获取到了跨域的数据,此文的原理和上一篇大致相同,同样需要插入子窗口,同样需要我们对同源政策进行处理。

阅读更多

Javascript 跨域(四)之 window.name + iframe

我们知道,iframe 是 html 的一个标签,可以在页面中创建内联框架,它有个src 属性(可以指向文件地址,html,php等)可以选择内联框架的内容。window.name 是当前窗口的名字,每个 iframe 都有包裹它的window,而这个 window 是 top window 的子窗口,既然同为 window 对象,则其自然也有 window.name 的值

阅读更多

Javascript 跨域(三)之 WebSocket

websocket 被称为 Web 领域的实时推送技术,也被称作为 Realtime 技术,有别于 ajax 轮询,它能实现真正意义上的实时消息推送,它有着广泛的应用场景,比如在线聊天室,web 客服或是 WebIM 等等。除此之外,我们还可用它来实现前端的跨域数据访问

阅读更多

JavaScript 跨域(二) 之 JSONP

浏览器的同源策略在保障了我们的数据安全,但是在进行一些比较深入的前端编程的时候却略显苛刻。JSONP 的跨域 GET 请求是一个常用的解决方案,下面我们来看一下 JSONP 是如何实现的,并探讨下 JSONP 的跨域原理

阅读更多

JavaScript 跨域(一) 之浏览器的同源策略

浏览器的安全基于同源策略(same-origin policy),根据 MDN 中对于同源策略的解释,它限制了一个源(origin)中加载文本或脚本与来自其他源(origin)中资源的交互方式。此文主要介绍同源政策,为接下去探讨跨域的一系列方式做准备。

阅读更多

移动端页面开发阶段性总结(持续更新)

距离从 avepoint 离职加入本来生活网已经 8 个月了,工作内容也从偏向 JS & PC 部分,逐渐转向于移动端 m 站的开发,这里简单总结下移动开发的一些常用技巧

阅读更多

Javascript 判断 android 或 ios 手机移动端总结

以下提供一些封装好的方法,用于判断是否是 ios 端 还是 android 端,是否是微信还是QQ

阅读更多

JavaScript 深拷贝

为了防止变量被污染,我们需要对对象(或数组)进行拷贝,由于JS不像 C 等高级语言一般,可以指定传值或是传地址,故而我们需要对 JS 手工扩展深拷贝的方法

阅读更多