2012-07-28 37 views
1

我試圖做對象檢測,以防止IE8在沒有new XMLSerializer()的情況下拋出錯誤,但是我一直沒有找到解決這個問題的跨瀏覽器方式。我通常使用object!='undefined'但是我還沒有找到實現這一點的跨瀏覽器方式。JavaScript:XMLSerializer對象檢測IE8和現代瀏覽器

這裏有一些我已經在Firefox 10和IE8測試的方式...

if (typeof new XMLSerializer!='undefined') {alert('unsupported, 1');} 

if (typeof new XMLSerializer()!='undefined') {alert('unsupported, 2');} 

if (new XMLSerializer!='undefined') {alert('unsupported, 3');} 

if (XMLSerializer!='undefined') {alert('unsupported, 4');} 

if (window.XMLSerializer!='undefined') {alert('unsupported, 5');} 

if (typeof XMLSerializer !== 'undefined') {alert('unsupported, 6');} 

那麼,如何才能實現對XMLSerializer對象檢測沒有不支持的瀏覽器,如IE8觸發錯誤?

+0

大多數功能檢測通常是通過'typeof XMLSerializer!=='undefined''來完成的,如果這種情況在沒有測試的情況下可以正常工作,我並不積極。 – 2012-07-28 23:50:23

+0

很明顯,它不起作用,因此我的問題。 – John 2012-07-28 23:56:24

+0

你的問題沒有註明,這就是爲什麼我發表評論:)你能否描述「沒有工作」? – 2012-07-28 23:57:47

回答

1

你應該通過這個來測試,如果它有它:

if (typeof window.XMLSerializer !== 'undefined') { 
    alert('Has XMLSerializer'); 
} else { 
    alert('No has XMLSerializer'); 
} 

這裏有一個小提琴示範:http://jsfiddle.net/fGZbL/1/

還是原來的撥弄我張貼應太(此測試的window.XMLSerializer感實性):http://jsfiddle.net/fGZbL/

+1

工作就像一個魅力,感謝它伸出援助! :-) – John 2012-07-29 00:24:35