1

我正在尝试进行对象检测以防止 IE8 在没有的情况下抛出错误,new XMLSerializer()但是我未能找到解决问题的跨浏览器方法。我通常使用object!='undefined'但是我还没有找到一种跨浏览器的实现方式。

以下是我在 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)中实现对象检测而不触发错误呢?

4

1 回答 1

1

You should be testing if it has it by this:

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

Here's a fiddle demonstrating: http://jsfiddle.net/fGZbL/1/

Or the original fiddle I posted should work too (this tests truthiness of window.XMLSerializer): http://jsfiddle.net/fGZbL/

于 2012-07-29T00:06:43.953 回答