Skip to content

Instantly share code, notes, and snippets.

View keenwon's full-sized avatar
😆
lol

Keenwon keenwon

😆
lol
View GitHub Profile
@keenwon
keenwon / getCss.js
Last active August 29, 2015 14:02
原生js获取元素样式
function getCss (el, cssName) {
if (el.style[cssName]) {
return el.style[cssName];
} else if (el.currentStyle) {
return el.currentStyle[cssName];
} else if (document.defaultView && document.defaultView.getComputedStyle) {
cssName = cssName.replace(/([A-Z])/g, '-$1');
cssName = cssName.toLowerCase();
var s = document.defaultView.getComputedStyle(el, '');
return s && s.getPropertyValue(cssName);
@keenwon
keenwon / tictac.js
Created June 27, 2014 03:16
倒计时组件
define(function () {
'use strict';
(function () {
var tictac = {
//当前时间
_currentTime: 0,
//上次执行callback的时间
@keenwon
keenwon / broadcast.html
Last active August 29, 2015 14:03
Javascript 横向不间断滚动效果
<div class="broadcast-box" id="broadcast_box">
<ul class="broadcast-detail" id="broadcast_detail">
<li>年会还剩两天就要来了,你准备好中大奖了么?</li>
<li>最后两天!再不报销本季度的钱再也拿不回来了你家里人造么?</li>
<li>星际2电竞娱乐化RPG地图入选“线上冠军赛</li>
</ul>
</div>
<script type="text/javascript">
var broadcast_div = document.getElementById('broadcast_div');
if (broadcast_div) {
@keenwon
keenwon / ajax.js
Last active August 29, 2015 14:03
原生Javascrip发送跨域ajax请求
function ajax (options) {
var type = (options.type || 'GET').toLocaleLowerCase(),
url = options.url,
data = options.data,
dataType = (options.dataType || 'json').toLocaleLowerCase(),
success = options.success;
//IE10以下
if (window.XDomainRequest) {
// 创建ajax引擎对象
@keenwon
keenwon / dateFormat.js
Last active September 2, 2015 07:18
时间格式化
function dateFormat(date, format) {
if(format === undefined){
format = date;
date = new Date();
}
var opt = {
"M+": date.getMonth() + 1, //月
"d+": date.getDate(), //日
"h+": date.getHours(), //時
"m+": date.getMinutes(), //分
@keenwon
keenwon / getIp.js
Last active August 29, 2015 14:06
nodejs从requset中获取ip
function getIp(req) {
var ipAddress;
var headers = req.headers;
var forwardedIpsStr = headers['x-real-ip'] || headers['x-forwarded-for'];
ipAddress = forwardedIpsStr ? forwardedIpsStr : '';
if (!ipAddress) {
ipAddress = req.connection.remoteAddress;
}
if (ipAddress.indexOf(':') !== -1) {
ipAddress = ipAddress.split(':')[0];
@keenwon
keenwon / windowOnload.js
Created December 1, 2014 14:31
原生的window.onload包装
/**
* 调用方法:
* function run(){
* //run.
* }
*
* windowOnload(run);
*/
function windowOnload(fun) {
var oldonload = window.onload;
@keenwon
keenwon / safeString.js
Created December 1, 2014 14:43
javascript安全字符串,参考Handlebars.js的实现
function safeString(string) {
if(!string) {
return "";
}
var escape = {
"&": "&amp;",
"<": "&lt;",
">": "&gt;",
'"': "&quot;",
"'": "&#x27;",
@keenwon
keenwon / template.js
Created December 3, 2014 08:00
简单的javascript模板引擎
function templateEngine(tpl, data) {
var reg = /\{\{(?!\}\})(.*?)\}\}/g,
regOut = /(^( )?(if|for|else|switch|case|break|{|}))(.*)?/g,
code = 'var r=[];\n',
cursor = 0,
match;
var add = function(line, js) {
js ? (code += line.match(regOut) ? line + '\n' : 'r.push(' + line + ');\n') :
(code += line !== '' ? 'r.push("' + line.replace(/"/g, '\\"') + '");\n' : '');
@keenwon
keenwon / spider.js
Last active August 29, 2015 14:17
Nodejs实现的简易网页抓取程序,支持代理(抓取墙外的资源)
var fs = require('fs'),
path = require('path'),
filePath = path.join(__dirname, 'log.txt'), //抓取结果写入log.txt文件
http = require('http');
var page = 1, //开始页码
maxPage = 100, //结束页码
search,
next,
run;