我想发挥一个功能:
function supportsElem(tagName) {
// returns boolean
}
其中:
supportsElem("div") // true
supportsElem("randomtext") // false
最简单的方法是什么?
答案 0 :(得分:1)
只是一个猜测,因为我从来没有关心过这个。但在我看来,你可以创建元素,然后检查以确保它的行为应该如此。例如,它具有某些属性,或者它的构造函数是正确的(或者至少与通用的不支持元素不同)。
构造函数检查的一个例子(未经测试):
// pick a name that'll never be an element
var generic_element = document.createElement('randomtext');
var tagName_to_check = document.createElement('div');
if (tagName_to_check.constructor === generic_element.constructor) {
// the browser treats the node as a generic element, rather than
// (eg) a DivElement
// so it's probably unsupported
}
答案 1 :(得分:1)
试试这个:
function testTag(tagname) {
return document.createElement(tagname) instanceof HTMLUnknownElement;
}
我不知道这个(HTMLUnknownElement
)会支持哪种浏览器。
答案 2 :(得分:1)
这比它的价值更多。
只需保留所有有效标记的字典(easy to find online)。基本上是一个字符串数组
然后它只是
var dictionary = ["div", "a", "input", "span", ..., "td"];
var myTag = "div";
dictionary.indexOf(myTag); // if this doesn't return -1, then the tag is valid
答案 3 :(得分:0)
您可以简单地创建元素,然后根据特定于此元素的方法对其进行测试。