2012-11-01 1 views
2

этот сценарий разработан для поддержки только IEIE JavaScript ошибка: document.evaluate нелегальный символ #

У меня есть это:

var result = document.evaluate(xpath, document, null, XPathResult.STRING_TYPE, null); 

с известным XPath;

XPath является:

id("productTitle") 

почему я получаю сообщение об ошибке:

Error ! This name may not contain the '#' character: 

-->#<--comment 

рабочий пример, простой: http://jsfiddle.net/gWpcU/6/

пример, который падает: http://jsfiddle.net/YkwTM/

+0

Можете ли вы опубликовать выражение XPath, которое вызывает ошибку? Это очень помогло бы. –

+0

отправил xpath –

+0

Это в IE или во всех браузерах? –

ответ

2

Причина, по которой вы получаете сообщение об ошибке в ex достаточным документом является то, что xPath пытается перечитать документ, чтобы делать на нем свою вещь, и всякий раз, когда он видит "<!", парсер сценария дает ошибку. Просматривая и удаляя все случаи "<!" (а именно, <!DOCTYPE html> и все комментарии <!--), страница работает без ошибок. Я бы вставлял его здесь, но ответ становится слишком длинным: вы можете сделать это сами.

И наоборот, вставка <!DOCTYPE html> в ваш рабочий пример также позволяет получить эту ошибку.