最近的文章列表

js 获取元素绑定事件的列表 chrome getEventListeners、 Events-EventListenerList 、$._data(a[0], 'events').click[0].handler

技术上有什么办法获得指定 HTMLElement 上有绑定那些 #JavaScript 函数事件,及其处理函数么?

比如我有一个按钮,想知道他绑定了那些事件? click 事件的处理函数是什么?

elem.onclick 这种只能绑定唯一的一个事件处理函数,可以直接取到。

...
2016/5/26 Comments:
解决Web移动端Fixed布局的方案(防止页面露底、overflow-scrolling、iOS下的 Fixed + Input BUG现象、isScroll.js)

一些细节处理

在细节处理上,其实还有很多要注意的,挑几个实际遇到比较大的问题来说一下:

  1. 有时候输入框 focus 以后,会出现软键盘遮挡输入框的情况,这时候可以尝试 input 元素的 scrollIntoView 进行修复。
  2. 在 iOS 下使用第三方输入法时,输入法在唤起经常会盖住输入框,只有在输入了一条文字后,输入框才会浮出。目前也不知道有什么好的办法能让唤起输入框时正确显示。这暂时算是 iOS 下的一个坑吧。
  3. ...
2016/5/24 Comments:
解决&#65279导致页面顶部空白一行方法 UTF-8 + BOM

模板文件生成html文件之后会在body开头处加入一个可见的控制符,导致页面头部会出现一个空白行。原因是页面的编码是UTF-8 + BOM。

这种编码方式一般会在windows操作系统中出现,比如WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码。

对于一般的文件,这样并不会产生什么麻烦。但对于 PHP来说,BOM是个大麻烦。因为PHP并不会忽略BOM,所以在读取、包含或者引用这些文件时,会把BOM作为该文件开头正文的一部分。根据嵌入式语言的特点,这串字符将被直接执行(显示)出来。由此造成即使页面的 top padding 设置为0,也无法让整个网页紧贴浏览器顶部,因为在html一开头有这3个隐藏字符!

...
2016/4/29 Comments:
3种查看Chrome扩展程序源码的方法(Chrome扩展程序二次开发)

以下三个比较简单的方法,可以让你了解一个非常精彩的Chrome扩展程序的源代码

一 使用7zip解压crx文件,在Mac下面可以使用Ez7z。

二 安装查看源代码的扩展程序

下载地址:https://chrome.google.com/webstore/detail/bbamfloeabgknfklmgbpjcgofcokhpia

...
2016/4/18 Comments:
win10过一会就睡眠了,电源和睡眠了,设置的不起作用,不进行任何操作后两分钟就睡眠

问题:

无论怎么设置电源选项,两分钟不进行任何操作后都会睡眠。

原因:

这是系统无人值守时睡眠时间的设定,默认是两分钟。

解决方法:

1.运行注册表管理器,win+r ,输入regedit.exe

2.定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0

...

2016/4/15 Comments:
emulator: ERROR: x86 emulation currently requires hardware acceleration!Please ensure Intel HAXM is properly installed and usable.CPU acceleration status: HAX kernel module is not installed!

在安装ADT(android development tools)安装开发工具时,提示如下错误:

Android Studio 1.0 已经放出来了,以后的Android平台开发激昂逐步从Eclipse向Android Studio迁移,为了能不落伍我也特意从Google下载了Android Studio的安装包,并且兴高采烈地创建了我的第一个android项目。但是当运行的时候就他么悲催了。

Please ensure Intel HAXM is properly installed and usable

2016/3/4 Comments:
详解HTML5的manifest缓存,已经删除更新缓存的方法

文件cache.manifest内容如下:

CACHE MANIFEST
# 2016-2-27 14:22:16
favicon.ico
img/bg.png
css/main.min.css
js/main.min.js
index.html
page/completed.html
page/info.html
page/login.html
page/menu.html
NETWORK:
*

要使用manifest缓存,我们首先需要写一个manifest文件。这个文件有严格的格式要求,下面是个例子CACHE MANIFEST

2016/3/3 Comments:
TodoMVC:帮助你选择一个MV*框架

开发者现在有很多的MV*框架选择来组织开发web应用程序。Backbone、 Ember、AngularJS、Spine… 新的稳定解决方案列表持续增长,但你如何决定在海量的框架中选择哪个使用?

为了帮助解决问题,于是诞生了TodoMVC项目,它使用不同的最流行的JavaScript MV*框架实现了一个相同的Todo应用。

2016/3/2 Comments:
简介腾讯CMEM的PHP扩展编译安装方法

CMEM是什么?

CMEM全称为Cloud Memory,是腾讯提供的高性能内存级持久化存储服务,适用于数据量小、访问量高、key-value存储的场景。

CMEM基于一个存储键/值对的hashmap,数据使用内存存储,并保证数据的持久性。

CMEM PHP Extension是什么?

CMEM基于标准的Memcached协议以及接口,只是将数据获取接口增加返回值设定。
Memcached的Get协议没有设计返回码,所以Memcached API返回NO_DATA时,有可能是网络原因造成的,不能完全信任。 使用如下流程将是非常危险的,将造成用户数据初始化:

if(NO_DATA) {
2016/3/1 Comments:
如何用PHP代码实现限制国内IP访问我们网站(利用淘宝的IP接口)

利用淘宝的IP接口来判断IP,是否是国内的ip,是国内(CN)的就不允许访问。

$ip = $_SERVER['REMOTE_ADDR'];
$content = file_get_contents(‘http://ip.taobao.com/service/getIpInfo.php?ip='.$ip);
$banned = json_decode(trim($content), true);
$lan = strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']);
2016/2/29 Comments: