1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
/**
* @class YAHOO.ext.CustomTagReader
* Utility class to normalize reading of custom tags across browsers.
*/
YAHOO.ext.CustomTagReader = function(namespace){
this.namespace = namespace;
};
YAHOO.ext.CustomTagReader.prototype = {
getAttribute : function(el, name, defaultValue){
return (this.useNS ?
v = el.getAttributeNS(this.namespace, name) : null) ||
el.getAttribute(this.namespace+':'+name) ||
el.getAttribute(name);
},
getElements : function(tagName, targetEl){
targetEl = targetEl || document.body;
var els;
if(this.useNS){ // no namespaces in IE
els = targetEl.getElementsByTagNameNS(this.namespace, tagName);
}
if(!els || els.length < 1){ // ie6, firefox 1.5, firefox 2 depending on doc type
els = targetEl.getElementsByTagName(this.namespace+':'+tagName);
}
if(!els || els.length < 1){ // everyone else
els = targetEl.getElementsByTagName(tagName);
}
return els;
},
eachElement : function(tagName, targetEl, fn, scope){
var els = this.getElements(tagName, targetEl);
for(var i = 0, len = els.length; i < len; i++) {
var el = els[i];
fn.call(scope || el, el);
}
},
useNS : (!YAHOO.ext.util.Browser.isIE && document.getElementsByTagNameNS) ? true : false
};
|