如何检查浏览器是否支持formtarget
或form
属性?
Modernizr在这里没有帮助,我甚至无法在网上找到有关浏览器当前form
支持状态的信息。虽然快速测试显示除了IE 9之外的所有当前浏览器都支持它们。
那么如何检查浏览器是否处理form*
属性?
答案 0 :(得分:2)
你走了:
if("formtarget" in document.createElement("input")){
//good job, browser
}else{
//nope
}
答案 1 :(得分:2)
输入上的表单属性是一种特殊情况。它在HTML5功能之前用于引用父表单,但现在它也被用作属性,因此您将在IE上出现误报。
有一个检查功能,但它涉及与DOM的交互,这可能会影响性能,但无论如何你要去。希望它有所帮助。
function testInputFormSupport() {
var input = document.createElement('input'),
form = document.createElement('form'),
formId = 'test-input-form-reference-support';
// Id of the remote form
form.id = formId;
// Add form and input to DOM
document.body.appendChild(form);
document.body.appendChild(input);
// Add reference of form to input
input.setAttribute('form', formId);
// Check if reference exists
var res = !(input.form == null);
// Remove elements
document.body.removeChild(form);
document.body.removeChild(input);
return res;
}
答案 2 :(得分:1)
看看this site。 它涵盖了所有新的表单功能,并提供了一个方便的小功能来测试属性的支持
// Function to test for attribute support
function elSupportsAttr(el, attr) {
return attr in document.createElement(el);
}
答案 3 :(得分:0)
尝试
if ("attribute" in document.createElement("tag"))
来自How can I tell of a HTML attribute exists or not, using Javascript