Skip to content

Instantly share code, notes, and snippets.

Avatar

Dave Shepard kynatro

View GitHub Profile
@kynatro
kynatro / params.js
Last active Aug 9, 2018
URL Parameters as an object
View params.js
// Could be any query string
var parameters = document.location.search;
var parametersObject = parameters
// Skip the "?" at the beginning of the string
.substr(1)
// Split into an array of individual parameters
.split("&")
// Split each parameter into an array of its key and value
.map(function(a){
@kynatro
kynatro / nginx.conf
Created Jun 1, 2015
nginx web font Content-Type specifications
View nginx.conf
location ~* \.(woff)$ {
add_header Content-Type "application/font-woff";
}
location ~* \.(otf)$ {
add_header Content-Type "application/font-sfnt";
}
location ~* \.(eot)$ {
add_header Content-Type "application/vnd.ms-fontobject";
}
location ~* \.(ttf)$ {
@kynatro
kynatro / bootstrap-daterangepicker-initializer.js
Created Mar 13, 2015
Bootstrap Date-range Picker Initializer
View bootstrap-daterangepicker-initializer.js
/**
* Simple initializer for bootstrap-daterangepicker.
*
* @copyright David Shepard 2015 (http://github.com/kynatro)
*
* Abstracts the initialization requirements for Dan Grossman's bootstrap-daterangepicker
* (http://www.daterangepicker.com/). This initializer needs Moment.js, jQuery, Bootstrap
* and the Bootstrap Date Range Picker libraries loaded to operate.
*
* To take advantage of this script, just add [data-toggle="daterangepicker"] to any element
@kynatro
kynatro / cookies.js
Created Sep 29, 2014
Cookies as an Object (Major modern browsers and IE9+)
View cookies.js
document.cookie.split("; ").map(function(i){
return i.split("=");
}).reduce(function(o, v, i){
try {
o[v[0]] = JSON.parse(decodeURIComponent(v[1]));
} catch(e) {
o[v[0]] = decodeURIComponent(v[1]);
}
return o;
}, {});
@kynatro
kynatro / prevent-scroll.js
Last active Aug 29, 2015
Prevent Window Scroll
View prevent-scroll.js
;(function($, window, undefined){
// Prevent scrolling on a page
$(window).on('mousewheel keydown', function(event){
// Un-comment to only prevent scrolling when an arbitrary global is true
// if(window.preventScroll) return;
// Only prevent default on specific key presses (pageup, pagedown, end, home, left, up, right, down)
if(event.type == "keydown"){
if($.inArray(event.keyCode, [33, 34, 35, 36, 37, 38, 39, 40]) !== -1) event.preventDefault();
}
@kynatro
kynatro / ie.js
Last active Aug 29, 2015
100% Reliable no UserAgent, JavaScript IE Detection
View ie.js
// IE version detection - 100% reliable since it depends on IE unique functionality
var ie = (function(){
// IE <= 9
var undef,
v = 3,
div = document.createElement('div'),
all = div.getElementsByTagName('i');
while (
div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
all[0]
@kynatro
kynatro / slugify.js
Last active Jan 1, 2016
Slugify phrases/camel-case
View slugify.js
function slugify(str){
return str.replace(/[^\w\d\s\-]+/g, "") // Strip invalid characters
.replace(/_+/g, "-") // Replace _ with -
.replace(/^[\s|\-]+|[\s|\-]+$/, "") // Trim whitespace
.replace(/(\s+)/g, ",") // Replace spaces with , for spliting
.replace(/([A-Z]+)/g, ",$1") // Add , between capitals for splitting
.replace(/^,/, "") // Trim off the first comma if one was added
.split(",") // Split it apart
.join("-") // Put it together
.replace(/-+/g, "-") // Get rid of serial -
@kynatro
kynatro / gist:8151845
Created Dec 27, 2013
Strip tags from string RegExp
View gist:8151845
OriginalString.replace(/(<([^>]+)>)/ig,"")