Я пишу приложение, которое конвертирует ответ ajax xml в
HTML с использованием XSLT-преобразования на стороне клиента. Преобразование
достигается с помощью следующего фрагмента, который отлично работает -
transform:function(xml){
if (window.XSLTProcessor){
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(Xmer.xsldoc);
var outputXHTML = xsltProcessor.transformToFragment(Xmer.makeXml(xml), document);
document.getElementById('tree').appendChild(outputXHTML.cloneNode(true));
}
else if(window.ActiveXObject){ //Internet Explorer
var d=Xmer.makeXml(xml);
var outputXHTML = (d).transformNode(Xmer.xsldoc);
document.getElementById('tree').innerHTML=outputXHTML;
}
}
Но проблема возникает в FF, когда я пытаюсь обработать вставленный
теги с использованием метода поиска jquery. Я пытаюсь получить все div
с определенным именем класса, которое было вставлено вышеуказанным кодом; с помощью
следующее -
var d=$document.find('div.pointer');
alert ($('div.pointer').length);
alert (d.length);
но приведенные выше предупреждения всегда возвращают длину «0». Работает тот же код
хорошо в IE. Я использую jquery 1.3.2.
Чтобы добавить больше к вышесказанному, я провел некоторые исследования по фрагментам документа и
найденный
следующий за http://ejohn.org/blog/dom-documentfragments/#comment-319149
(нужно нажать «Показать комментарии», чтобы добраться до этого места) -
"# Очевидно, но иногда упускается из виду: фрагмент самодостаточен.
Это означает, что фрагмент не имеет доступа к объектам за его пределами
(т.е. часть основного документа). Таким образом, даже если у вас есть классы CSS
(атрибут класса), установленный в элементе, невозможно выполнить запрос на основе
на свойства, установленные и / или измененные этим классом CSS. В основном
классы, установленные в атрибуте class, если они определены вне фрагмента,
стать просто ярлыками. "
, значит, поиск элементов внутри фрагмента не поддерживается.
Есть ли какое-нибудь решение для этого?
Прошу прощения, если что-то подобное обсуждалось ранее
и был бы признателен, если бы кто-нибудь направил меня в этом.
Спасибо,
amit