Diffstat (limited to 'frontend/beta/js/YUI-extensions/CustomTagReader.js') (more/less context) (ignore whitespace changes)
-rw-r--r-- | frontend/beta/js/YUI-extensions/CustomTagReader.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/frontend/beta/js/YUI-extensions/CustomTagReader.js b/frontend/beta/js/YUI-extensions/CustomTagReader.js new file mode 100644 index 0000000..12faaa9 --- a/dev/null +++ b/frontend/beta/js/YUI-extensions/CustomTagReader.js | |||
@@ -0,0 +1,40 @@ | |||
1 | /** | ||
2 | * @class YAHOO.ext.CustomTagReader | ||
3 | * Utility class to normalize reading of custom tags across browsers. | ||
4 | */ | ||
5 | YAHOO.ext.CustomTagReader = function(namespace){ | ||
6 | this.namespace = namespace; | ||
7 | }; | ||
8 | YAHOO.ext.CustomTagReader.prototype = { | ||
9 | getAttribute : function(el, name, defaultValue){ | ||
10 | return (this.useNS ? | ||
11 | v = el.getAttributeNS(this.namespace, name) : null) || | ||
12 | el.getAttribute(this.namespace+':'+name) || | ||
13 | el.getAttribute(name); | ||
14 | }, | ||
15 | |||
16 | getElements : function(tagName, targetEl){ | ||
17 | targetEl = targetEl || document.body; | ||
18 | var els; | ||
19 | if(this.useNS){ // no namespaces in IE | ||
20 | els = targetEl.getElementsByTagNameNS(this.namespace, tagName); | ||
21 | } | ||
22 | if(!els || els.length < 1){ // ie6, firefox 1.5, firefox 2 depending on doc type | ||
23 | els = targetEl.getElementsByTagName(this.namespace+':'+tagName); | ||
24 | } | ||
25 | if(!els || els.length < 1){ // everyone else | ||
26 | els = targetEl.getElementsByTagName(tagName); | ||
27 | } | ||
28 | return els; | ||
29 | }, | ||
30 | |||
31 | eachElement : function(tagName, targetEl, fn, scope){ | ||
32 | var els = this.getElements(tagName, targetEl); | ||
33 | for(var i = 0, len = els.length; i < len; i++) { | ||
34 | var el = els[i]; | ||
35 | fn.call(scope || el, el); | ||
36 | } | ||
37 | }, | ||
38 | |||
39 | useNS : (!YAHOO.ext.util.Browser.isIE && document.getElementsByTagNameNS) ? true : false | ||
40 | }; | ||