UNPKG

webshim

Version:

modular capability-based polyfill loading libary, which extends jQuery with HTML5 features in legacy browsers

48 lines (45 loc) 1.27 kB
(function($){ var getAttrValue = function(value, type, name){ if(type == 'standard' && value === ''){ value = undefined; } else if(type == 'boolean'){ value = (value) ? name : undefined; } return value; }; var getElementSel = function(elem){ var name = elem.prop('nodeName').toLowerCase(); var ext = elem.prop('className'); if(ext && ext.split){ name += '.'+ (ext.split(' ').join('.')); } ext = elem.prop('name'); if(ext){ name += '[name="'+ ext +'"]'; } ext = elem.prop('id'); if(ext){ name += '#'+ext; } return name; }; window.webshimtest = { reflectAttr: function(elem, name, value, type){ elem = $(elem); type = type || 'standard'; var elemSel = getElementSel(elem); var attrValue = getAttrValue(value, type, name); strictEqual(elem.prop(name), value, type+' - prop of '+ elemSel +' is '+ name +': '+ value); }, hasMethod: function(elem, methodName){ elem = $(elem); var elemSel = getElementSel(elem); var fn = elem.prop(methodName); ok(fn && fn.call && fn.apply, elemSel+' has method as prop '+ methodName); if($.webshims.cfg.extendNative){ fn = elem[0][methodName]; ok(fn && fn.call && fn.apply, elemSel+' has method as native '+ methodName); } } }; })(jQuery);