var isKnownTagName = function() { var cache = {}; return function(tag_name) { if (tag_name in cache) { return cache[tag_name]; } var ret; try { ret = document.createElement(tag_name).constructor != HTMLUnknownElement; } catch(error) { ret = false; } return cache[tag_name] = ret; } }(); isKnownTagName('a'); // true isKnownTagName('xxx'); // false isKnownTagName('&%$'); // false