2011-02-10 1 views
2

я получил следующее ..document.evaluate не работает в Chrome?

var result = doc.evaluate("//input[@class=\"form_field_as as-input\"]", 
          context, 
          null, 
          XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, 
          null); 
    for(var i = 0; i < result.snapshotLength; i++) { 
    a[i] = result.snapshotItem(i); 
} 
return a; 

Выражение Я оценки от входа. Код отлично работает в FireFox, но когда я тестирую его в Chrome, он ничего не возвращает. Что я делаю не так?

вход Я оценка есть ..

<input type="text" id="sharees" class="form_field_as"> 
+0

, когда я просто проверяю консоль javascript в chrome с кодом, я получаю сообщение об ошибке, в котором говорится, что «doc» не определен. – Stephen

+0

'doc' - это просто' document' – Skizit

+0

@Skizit: Видимо, нет? – drudge

ответ

5

От http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathEvaluator-evaluate

contextNodeof typeNode
The context is context node for the evaluation of this XPath expression. If the XPathEvaluator was obtained by casting the Document then this must be owned by the same document and must be a Document , Element , Attribute , Text , CDATASection , Comment , ProcessingInstruction , or XPathNamespace node. If the context node is a Text or a CDATASection , then the context is interpreted as the whole logical text node as seen by XPath, unless the node is empty in which case it may not serve as the XPath context.

Таким образом, ваш context должен быть какой-то экземпляр этих классов. Я предполагаю, что вы, вероятно, не устанавливаете эту переменную вообще. Вы также можете использовать null, и контекст станет узлом, из которого вы оцениваете выражение.

Кроме того, не отметить, что //input[@class='form_field_as as-input'] является абсолютным выражением, и он будет возвращать один и тот же результат, из любого контекста (вне контекста документа не допускается, когда «XPathEvaluator был получен заливкой Document»).

+0

Прохладный. Я просто собирался опубликовать аналогичный ответ с https://developer.mozilla.org/en/introduction_to_using_xpath_in_javascript в качестве ресурса. Примеры на этой странице отлично работают в Chrome. – Stephen