Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,887

    javascript esterno in XSL

    Trasformo un XML in XSL con la seguente funzione

    function Scheda(XSLsource,var1){
    var moz = (typeof document.implementation != 'undefined') && (typeof
    document.implementation.createDocument != 'undefined');
    var ie = (typeof window.ActiveXObject != 'undefined');

    if (moz) {

    // load the xslt file
    var xslStylesheet;
    var xsltProcessor = new XSLTProcessor();
    var myDOM;
    var xmlDoc;
    var myXMLHTTPRequest = new XMLHttpRequest();

    myXMLHTTPRequest.open("GET", XSLsource, false);
    myXMLHTTPRequest.send(null);

    xslStylesheet = myXMLHTTPRequest.responseXML;
    xsltProcessor.importStylesheet(xslStylesheet);

    // load the xml file
    myXMLHTTPRequest = new XMLHttpRequest();
    myXMLHTTPRequest.open("GET", "DBxml.xml", false);
    myXMLHTTPRequest.send(null);
    xmlDoc = myXMLHTTPRequest.responseXML;

    // set the parameter using the parameter passed to the outputgroup function
    xsltProcessor.setParameter(null,"Nome",var1);
    // Transform
    var result = xsltProcessor.transformToDocument(xmlDoc);
    document.write(result.documentElement.innerHTML);

    } else if (ie) {
    // load the xslt file
    var xslt = new ActiveXObject("Msxml2.XSLTemplate");
    var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument");
    var xslProc;
    xslDoc.async = false;
    xslDoc.resolveExternals = false;
    xslDoc.load(XSLsource);
    if ( xslDoc.parseError < 0 )
    alert("error loading XSL stylesheet: " + XSLsource);

    xslt.stylesheet = xslDoc;

    // load the xml file
    var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
    xmlDoc.async = false;
    xmlDoc.resolveExternals = false;
    xmlDoc.load("DBxml.xml");
    xslProc = xslt.createProcessor();
    xslProc.input = xmlDoc;

    // set the parameter using the parameter passed to the outputgroup function
    xslProc.addParameter("Nome", var1);
    // Transform
    xslProc.transform();
    document.open();
    document.write(xslProc.output);
    document.close();
    }
    else {
    alert("Unable to do xml/xsl processing");
    }
    }

    Ho preparato un'altra funzione JS per il menù di navigazione in modo da poterlo modificare senza dover intervenire in tutte le pagine.
    Nelle pagine XHTML tutto funziona regolarmente ma nella pagina XSL visualizzata con FF il menù viene visualizzato dopo l'ultima sezione del footer e largo tutta la pagina mentre in IE tutto va a meraviglia.
    (Dovrebbe essere nella colonna di DX di un layout float a due colonne).

    Immagino che il tutto sia dovuto alla differenza di trasformazione XML/XSL tra i due. Mentre per IE viene convertito tutto in HTML prima della visualizzazione, per FF rimane qualcosa da "fare" dopo la composizione della pagina.

    Qualcuno sa darmi qualche dritta?

    Maurizio

  2. #2
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,887
    Soluzioni ??

  3. #3
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,887

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 © 2026 vBulletin Solutions, Inc. All rights reserved.