функция document.evalute, выдающая исключение - PullRequest
2 голосов
/ 23 апреля 2010

У меня есть код вроде

res = doc.evalute(xpathExpr,doc,
                  function(prefix) {return namespaces[prefix] || null;},
                  XPathResult.ANY_TYPE,null );

Здесь doc - это узел документа DOM

Когда я запускаю такой цикл, как этот

for(i in doc) alert(i);

, он дает метод оценки

, но когда я пытался использовать этот метод на dom-узле, он выдавал ошибку вроде

xpathResult не определен ...

Я работаю в браузере Android

спасибо заранее ....

Ответы [ 2 ]

2 голосов
/ 23 апреля 2010
XPathResult.ANY_TYPE

Не гарантируется, что интерфейс XPath XPathResult DOM уровня 3 будет фактически представлен как член window с именем XPathResult. Фактически, ни один из интерфейсов DOM не указан для отражения в качестве функций-конструкторов в window. В большинстве браузеров без IE многие из них есть. Но браузер Android, похоже, не поддерживает evaluate на HTMLDocument; Я думаю, поэтому он также не обеспечивает XPathResult.

Так что, если вы хотите получить статический член, такой как ANY_TYPE, единственный надежный способ сделать это - уже иметь экземпляр этого класса и получить к нему доступ .ANY_TYPE. Поскольку у вас нет XPathResult на данный момент, вам, вероятно, лучше просто сказать 0.

0 голосов
/ 10 мая 2011

Попробуйте использовать Components.interfaces.nsIDOMXPathResult вместо XPathResult.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...