前端代码笔记

 

/*
Developed by Robert Nyman, http://www.robertnyman.com
Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/
var getElementsByClassName = function (className, tag, elm) {
if (document.getElementsByClassName) {
getElementsByClassName = function (className, tag, elm) {
elm = elm || document;
var elements = elm.getElementsByClassName(className),
nodeName = (tag) ? new RegExp("\\b" + tag + "\\b", "i") : null,
returnElements = [],
current;
for (var i = 0, il = elements.length; i < il; i += 1) {
current = elements[i];
if (!nodeName || nodeName.test(current.nodeName)) {
returnElements.push(current);
}
}
return returnElements;
};
}
else if (document.evaluate) {
getElementsByClassName = function (className, tag, elm) {
tag = tag || "*";
elm = elm || document;
var classes = className.split(" "),
classesToCheck = "",
xhtmlNamespace = "http://www.w3.org/1999/xhtml",
namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace) ? xhtmlNamespace : null,
returnElements = [],
elements,
node;
for (var j = 0, jl = classes.length; j < jl; j += 1) {
classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
}
try {
elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
}
catch (e) {
elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
}
while ((node = elements.iterateNext())) {
returnElements.push(node);
}
return returnElements;
};
}
else {
getElementsByClassName = function (className, tag, elm) {
tag = tag || "*";
elm = elm || document;
var classes = className.split(" "),
classesToCheck = [],
elements = (tag === "*" && elm.all) ? elm.all : elm.getElementsByTagName(tag),
current,
returnElements = [],
match;
for (var k = 0, kl = classes.length; k < kl; k += 1) {
classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
}
for (var l = 0, ll = elements.length; l < ll; l += 1) {
current = elements[l];
match = false;
for (var m = 0, ml = classesToCheck.length; m < ml; m += 1) {
match = classesToCheck[m].test(current.className);
if (!match) {
break;
}
}
if (match) {
returnElements.push(current);
}
}
return returnElements;
};
}
return getElementsByClassName(className, tag, elm);
};

function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}

function addSid(target) {
// URL params pass for CTA buttons

var locationUrl = window.location.href;
var urlParams = locationUrl.substring(locationUrl.indexOf('?')+1);

var sid = getUrlVars()["sid"];

if (urlParams != '' && typeof(sid) != "undefined") {

for(t in target) {
var currentHref = target[t].getAttribute('href');
if (currentHref.indexOf('?') == -1){
var endingSlash = '';
if (currentHref.substr(currentHref.length - 1) != '/') { endingSlash = '/'; }
target[t].setAttribute('href', currentHref+endingSlash+'?sid='+sid);
} else {
target[t].setAttribute('href', currentHref + '&sid=' + sid);
}
}
}
for(t1 in target) {
currentHref = target[t1].getAttribute('href');
if (currentHref.indexOf('HTTP_REFERER') != -1) {
if (document.referrer && document.referrer != 'undefined') {
currentHref = currentHref.replace('HTTP_REFERER', document.referrer);
} else {
currentHref = currentHref.replace('HTTP_REFERER', '');
}
}
if (currentHref.indexOf('HTTP_HOST') != -1) {
if (window.location.hostname && window.location.hostname != 'undefined') {
currentHref = currentHref.replace('HTTP_HOST', window.location.hostname);
} else {
currentHref = currentHref.replace('HTTP_HOST', '');
}
}
target[t1].setAttribute('href', currentHref);
}
};

 

posted @ 2017-02-03 09:06  霏霏雪无声  阅读(201)  评论(0编辑  收藏  举报