Уфф я это сделал :-)
Надо добавить параметр xslt в две строки
2599 SRAX.History.add(idLayer, loc, '', o.xslt); //добавляем xslt в
вызов функции
2897 var res = SRAX.History.fireEvent('beforeadd', {
hash:hash,
rhash:rhash,
id:id,
url:loc,
loc:loc, //deprecated
prefix:prefix,
xslt:xslt}) //и передаем xslt в событие beforeadd
И еще чуть патчим функцию go2Hax
Добавляем такую строчку
2729 xslt = href.split(curAx[id].replace('?','[~q~]') + ':xslt:');
и добавляем в hax параметр xslt
2741 hax(url, {id:id, nohistory:startPage, startPage:startPage,
rc:options.rc, xslt:xslt[1]});
Аддон для фулаякса теперь выглядит так
SRAX.attrs.push('xslt');//добавляем атрибут xslt для парсинга
ax:xslt в елементах <a>
SRAX.History.on('beforeadd', function(ops){
if(ops.hash.indexOf(':xslt:')!=-1) ops.hash =
ops.hash.substring(0,ops.hash.indexOf(':xslt:')); //затираем параметр
xslt
if(ops.xslt) return ops.hash + ':xslt:' + ops.xslt; //если надо
преобразование добавляем значение xslt в адресную строку
else return ops.hash; //если просто html не добавляем
});
//регистрируемся на событие 'response' для всех потоков запросов
HTML
SRAX.Html.onall('response', function(ops){
if (ops.options.xslt) {ops.text = XSLTTransform(ops.text,
ops.options.xslt);} //вызываем функцию преобразования
})
//функция для преобразования
function XSLTTransform(text, xsltFile){
if(typeof(ActiveXObject) == 'undefined') var xml = new
DOMParser().parseFromString(text, "application/xml");
else { var xml = new ActiveXObject('MSXML.DomDocument');xml.async
= false;xml.loadXML(text);}
var xslt;
if (window.ActiveXObject) xslt = new
ActiveXObject("Microsoft.XMLDOM");
else xslt = document.implementation.createDocument('', 'myxml',
null);
xslt.async = false;
xslt.load(xsltFile);
if (window.ActiveXObject) return xml.transformNode(xslt);
else{
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xslt);
var doc = xsltProcessor.transformToDocument(xml);
var xmls = new XMLSerializer();
return xmls.serializeToString(doc);
}
}
Вуаля все работает :-) теперь можно получать ответ и в html и в
результате трансформации xslt
и работают прямые ссылки на страницы которые должны быть преобразованы
например
https://mydomain.ru/new/index.php#:ax:middle:/new/php/card_accounts.php[~q~]group_id=6:xslt:xslt/card_accounts.xslt