我發現IE 11中不支持XPathEvaluator,但是我想知道是否有適當的檢測機制來檢查它是否存在,如果沒有回落到IE中的selectSingleNode方法。IE11中的XPathEvaluator檢測
事情與此類似但每當我以這種方式檢查XPathEvaluator它在IE 11炸燬,但在Firefox/Chrome工作
if (XPathEvaluator) {
var xpe = new XPathEvaluator();
...... evaluation logic
return results.singleNodeValue;
}
else {
return xmlDoc.selectSingleNode(elPath);
}
用來依靠window.ActiveXObject是否存在等調用的selectSingleNode上的邏輯然而該屬性已經在IE 11中被刪除,導致XPathEvaluator邏輯被擊中。
我寧願檢測此功能是否存在,也不檢查瀏覽器版本,因爲功能和功能在不斷變化。
這是我的簡單測試用例。
IE 11會提醒我不是IE彈出窗口,然後炸開XPath。
FF/Chrome會提醒我不是IE瀏覽器彈出,然後警報XPathEvaluator是一個去。
function selectSingleNode()
{
// previous logic relied on this to call XPathEvaluator
if(window.ActiveXObject)
{
alert('Im IE');
}
else
{
alert('I am Not IE');
}
// I wanted to do something like this.
if(XPathEvaluator)
{
alert('XPathEvaluator is a go');
}
else
{
alert('XPathEvaluator is a no go');
}
}
評價檢查是完美的,我沒有意識到它。 – crackhaus