2012-06-24 100 views
2

如何檢查瀏覽器是否支持formtargetform屬性?如何檢查瀏覽器對HTML5表單屬性的支持?

Modernizr在這裏沒有幫助,我甚至在瀏覽器中找不到form支持的當前狀態。儘管快速測試顯示除IE 9以外的所有當前瀏覽器都支持它們。

那麼如何檢查瀏覽器是否處理了form*屬性?

回答

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; 
} 
1

看一看this site。 它涵蓋了所有新的形式特點,並給出了方便的小功能,測試屬性的支持

// Function to test for attribute support 
function elSupportsAttr(el, attr) { 
    return attr in document.createElement(el); 
} 
+0

Wufoo不包括*全部*新的表單功能,至少'form'沒有被提及。但測試功能起作用。 –

+1

-1這不起作用。 document.createElement中的「form」(「input」)在IE8上返回true(請參閱@ Sev的答案)。 document.createElement(「input」)中的''formaction''和其他的在所有支持它的瀏覽器上返回'false'。 – Stijn

2

在這裏你去:

if("formtarget" in document.createElement("input")){ 
    //good job, browser 
}else{ 
    //nope 
} 
+0

-1據此,「formtarget」在支持它的瀏覽器上不受支持。 – Stijn

+0

@Stijn - Huh ??? –

+0

http://jsfiddle.net/ZXccw/在Firefox 23上輸出'false',而自Firefox 4以來它已被支持。[Bugzilla ticket](https://bugzilla.mozilla.org/show_bug.cgi?id=566064 )* 2010-08-19 22:20:37 PDT現在在樹上。* – Stijn

相關問題