A distanza di tempo sono tornato sull'argomento per vedere se potevo risolvere.. studia studia.. prova prova.. sono riuscito a risolvere e scrivo qua come ho fatto nella speranza che possa essere utili a qualcuno.
Per far funzionare il tutto bumpbox necessita di caricare gli script previsti alla fine di tutto prima del tag di chiusura del body.
Per fare questo attraverso la trasformazione xslt senza modificare la pagina principale, è necessario caricare dinamicamente gli script esterni ed eventuali CSS: alla fine del template di trasformazione, è necessario inserire un tag <SCRIPT> contenente tutto il codice necessario: quindi per ogni script sarà necessario effettuare il caricamento dinamico e poi il setup dello script bumpbox deve essere richiamato (tramite "doBump") SOLO dopo che il caricamento dello script esterno bumpbox è terminato (e per questo si ricorre agli eventi con una procedurtqa di callback).
Nello specifico mio caso, di pagina ASPX per poter funzionare correttamente lo script necessita di un ulteriore step: si deve forzare l'esecuzione del "doBump" SOLO al termine del caricamento della pagina (che scatena l'onload); nello specifico di sharepoint, per inserire la nostra funzione nella coda dell'onload, si usa la funzione _spBodyOnLoadFunctionNames.push
Spero che sia sufficiente a mettere sulla strada buona chi si dovesse imbattere nella mia stessa necessità.
codice:
<SCRIPT language="javascript"> var baseURL='http://mywebsite.local/myFolder/'; var oHead=document.getElementsByTagName('head')[0]; var oBody=document.getElementsByTagName('body')[0]; function loadjscssfile(filename, filetype,head,callback_fn){ if (typeof head!="undefined"){head=true;} if (filetype=="js"){ //if filename is a external JavaScript file var fileref=document.createElement('script'); if (typeof callback_fn!="undefined"){ fileref.setAttribute("onload",callback_fn); fileref.onreadystatechange = function() { if (this.readyState == 'complete') { callback_fn(); } } } fileref.setAttribute("type","text/javascript"); fileref.setAttribute("src", filename); } else if (filetype=="css"){ //if filename is an external CSS file var fileref=document.createElement("link"); if (typeof callback_fn!="undefined"){ fileref.setAttribute("onload",callback_fn); fileref.onreadystatechange = function() { if (this.readyState == 'complete') { callback_fn(); } } } fileref.setAttribute("rel", "stylesheet"); fileref.setAttribute("type", "text/css"); fileref.setAttribute("href", filename); } if (typeof fileref!="undefined"){ if(head==true){ oHead.appendChild(fileref); }else{ oBody.appendChild(fileref); } } } function Bumping(){ document.onload=doBump('.bumpbox',500, 500, '000', '6b7477', 0.7, 7, 2 ,'333', 15,'000', 1, Fx.Transitions.Back.easeOut, Fx.Transitions.linear,baseURL+'bumpbox/images/demo_bg_bumpbox.png'); } loadjscssfile(baseURL+'CSS_JS/style_TS.css', 'css',true); loadjscssfile(baseURL+'bumpbox/js/mootools.js', 'js',false) loadjscssfile(baseURL+'bumpbox/js/bumpbox-2.0.1.js', 'js',false,_spBodyOnLoadFunctionNames.push("Bumping")); </SCRIPT>