My favorites | Sign in
Project Home Downloads Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Search
for
JavascriptSnippets  
A collection of Javascript snippets.
Updated Jul 8, 2008 by john.fle...@gmail.com

Table of Contents

getElementByClassName

Source

var getElementsByClassName = function(name, s) {
	var scope = s || document, elements = [], length, i;
	if (scope == document || scope.nodeType == 1) {
		if (document.evaluate) {
			var xpath = document.evaluate('.//*[contains(concat(" ", @class, " "), " ' + name + ' ")]', scope, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
			length = xpath.snapshotLength, i = 0;
			for (; i<length; i++) {
				elements.push(xpath.snapshotItem(i));
			}
			return elements;
		} else {
			elements = scope.getElementsByTagName('*');
		}
	} else {
		elements = scope;
	}
	length = elements.length, i = 0;
	var nodes = [], regEx = new RegExp('(^|\\s)' + name + '(\\s|$)');
	for (; i<length; i++) {
		if (elements[i].className.match(regEx)) {
			nodes.push(elements[i]);
		}
	}
	return nodes;
};

Fix Remote References

Convert remote resources to local.

Source

<!--//--><![CDATA[//><!--
if (/file/.test(window.location.protocol)) {
	var i, element, replacement, regex = /^\/scorm\/content\/framework\//;
	for (i = 0; (element = document.getElementsByTagName('link')[i]); i++) {
		if (regex.test(element.getAttribute('href'))) {
			element.setAttribute('href', element.getAttribute('href').replace(regex, './'));
		}
	}
	for (i = 0; (element = document.getElementsByTagName('script')[i]); i++) {
		if (regex.test(element.getAttribute('src'))) {
			replacement = document.createElement('script');
			replacement.setAttribute('type', 'text/javascript');
			replacement.setAttribute('src', element.getAttribute('src').replace(regex, './'));	
			element.parentNode.replaceChild(replacement, element);			
		}
	}
}
//--><!]]>

Convert To Boolean

Source

var convertToBoolean = function(str) {
	return /^(true|1)$/i.test(str) && !/^(false|0)$/i.test(str);
};
alert(convertToBoolean('true'));

Bootstrap

On-demand Javascript.

Source

if (!window.XMLHttpRequest) {
	window.XMLHttpRequest = function() {
		return new ActiveXObject('Microsoft.XMLHTTP');
	}
}

var Bootstrap = {
	require: function(module) {
		var ajaxRequest = new XMLHttpRequest();
		if (!!ajaxRequest) {
			ajaxRequest.open('GET', (module+(/\?/.test(module) ? '&' : '?')+'cache='+Number(new Date)), false);
			ajaxRequest.send(null);
			// This is our attempt to catch a 404 page. If the text loaded includes and HTML tag,
			// don't evaluate it as javascript.
			if (!/<!DOCTYPE/.test(ajaxRequest.responseText.substr(0, 9))) {
				var scriptElement = document.createElement('script');
				scriptElement.setAttribute('type', 'text/javascript');
				scriptElement.text = ajaxRequest.responseText;
				document.getElementsByTagName('head')[0].appendChild(scriptElement);
				return true;
			}
		}
		return false;
	}
};

Usage

Bootstrap.require("http://www.google-analytics.com/ga.js");

Optimized Loop

Source

var length = [Array].length, i=0;
for(; i<length; i++) {
	// loop
}

XMLHttpRequest

POST

(function(){

	// IE doesn't implement XMLHttpRequest, so fake it.
	if (!window.XMLHttpRequest) {
		window.XMLHttpRequest = function() {
			return new ActiveXObject("Microsoft.XMLHTTP");
		}
	}

	var params = "ICQryName=LEARNER_DEBUG&ICDummy=10113&ICType=Query&ICElementNum=1&ICStateNum=68&ICAction=None&ICXPos=0&ICYPos=0&ICChanged=-1&ICResubmit=0&InputKeys_LM_ENRLMT_ID=17991430";

	// Create the Ajax request that will update the scoreboard.
	var xmlRequest = new XMLHttpRequest();

	xmlRequest.open("POST", "https://dbserhelwd01.ddc.vzwcorp.com:21251/psc/elmstg_1/EMPLOYEE/ELM/q/", true);

	xmlRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlRequest.setRequestHeader("Content-length", params.length);
	xmlRequest.setRequestHeader("Connection", "close");

	xmlRequest.onreadystatechange = function() {
		if (xmlRequest.readyState == 4) {
			if (xmlRequest.status == 200) {
				document.getElementById("results").innerHTML = xmlRequest.responseText;
			} else {
				alert('SORRY!');
			}
		}
	};

	xmlRequest.send(params);
}())

Ajax

Source

// IE doesn't implement XMLHttpRequest, so fake it.
if (!window.XMLHttpRequest) {
	window.XMLHttpRequest = function() {
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
}

var ajax = function(method, url, params, callback) {
	var xmlRequest = new XMLHttpRequest();
	xmlRequest.open(method.toUpperCase(), url, true);
	if (method.toUpperCase() == "POST") {
		xmlRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlRequest.setRequestHeader("Content-length", params.length);
		xmlRequest.setRequestHeader("Connection", "close");
	}
	xmlRequest.onreadystatechange = function() {
		if (xmlRequest.readyState == 4) {
			callback(xmlRequest);
		}
	};
	xmlRequest.send(params || null);
};

ajax("POST", "https://dbserhelwd01.ddc.vzwcorp.com:21251/psc/elmstg_1/EMPLOYEE/ELM/q/", "ICQryName=LEARNER_DEBUG&ICDummy=10113&ICType=Query&ICElementNum=1&ICStateNum=68&ICAction=None&ICXPos=0&ICYPos=0&ICChanged=-1&ICResubmit=0&InputKeys_LM_ENRLMT_ID=17991430", function(response){
	alert(response.status+": "+response.responseText);
});
Powered by Google Project Hosting