Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    XML+XSL+Javascript con Bumpbox

    Ciao a tutti!!
    Ho bisogno ti un aiuto per capire come risolvere un problemi con tutte le cose in oggetto. Breve spiegazione..

    Sto lavorando all'interno di Sharepoint della Ms ed in particolare sto realizzando uan piccola webpart che si crea dalla magica unione di un file xml e relativo xsl.. che rappresenteranno un semplice menu con una serie di PDF da visualizzare, ovviamente con BumpBox da come avrete intuito dall'oggetto

    Facendo una pagina html standalone (e quindi includendo nel file html i tag <script> per includere i js di bumpbox) tutto funziona perfettamente.. il problema sorge quando il tutto deve generarsi all'interno della mia webpart.. che è contenuta in una pagina esistente.

    Semplicemente non riesco a far funzionare bumpbox (la trasformazione xsl avviene regolarmente). Devo agire secondo voi lato xsl? Oppure devo agire lato javascript in qualche modo (e quindi cambio thread )??

    Credo che il tutto dipenda dal fatto che non venga eseguita una routine di inizializzazione di bumpbox, non facendo parte del tag head della pagina..

    Suggerimenti?

  2. #2
    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>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.