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

    Caricare uno script Javascript "on-the-fly"

    Ciao a tutti,
    Stavo creando una pagina in cui includere una mappa di google...
    la mia intenzione era di caricare in stile Ajax (una chiamata XHTML asincrona) non solo il <div>, ma anche le API di google.
    Leggendo su internet mi sono imbattuto in questo:
    Codice PHP:
    function include_js(script_filename) {
             var 
    html_doc document.getElementsByTagName('head').item(0);
             var 
    js document.createElement('script');
             
    js.setAttribute('type''text/javascript');
             
    js.setAttribute('src'script_filename);
             
    html_doc.appendChild(js);
             
    js.onload = function () { return true;  }
             return 
    false;
             
            } 
    Ho pensato potesse fare a caso mio...ho scritto un <div id="gmap" style="width: 100%; height: 500px;" onload="initGmap('gmap','41','12')" oppure onclick="initGmap('gmap','41','12')">MAPPA</div>
    Codice PHP:
    function initGmaps(idlatlng) {
             
    include_js('http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAA_MuoIOLm5mjPspoRmMd9qRRUXL0pcOuJOdLJlCGQHhRKTxT7FRTrDOuvG7PmBi1ZqHu7CEP8nOMaKg');
             
             if (
    GBrowserIsCompatible()) { 



              

          function 
    createMarker(point,html) {

            var 
    marker = new GMarker(point);

            
    GEvent.addListener(marker"click", function() {

              
    marker.openInfoWindowHtml(html);

            });

            return 
    marker;

          }



          
    // Mostra la mappa con longitudine, latitudine e zoom specificati e i controlli
          
    var map = new GMap2(document.getElementById(id));

          
    map.addControl(new GLargeMapControl());

          
    map.addControl(new GMapTypeControl());

          
    map.setCenter(new GLatLng('44','-79'),8);

          
    //while(!map.isLoaded()) Element.show('indicator');

          

         // Inizializza tre marcatori 

        

          
    var point = new GLatLng(43.65654,-79.90138);

          var 
    marker createMarker(point,'<div style="width:240px">Bla Bla</div>')

          
    map.addOverlay(marker);



          var 
    point = new GLatLng(43.91892,-78.89231);

          var 
    marker createMarker(point,'Bla Bla 2')



          var 
    point = new GLatLng(43.82589,-79.10040);

          var 
    marker createMarker(point,'Bla Bla 3')

          
    map.addOverlay(marker);



        }

        

        
    // Browser non  compatibile con la libreria

        
    else {

          
    alert("Sorry, the Google Maps API is not compatible with this browser");

        } 
    Inutile dire che non funzia, l'ho testato anche con altri file .js. Per ora uso PHP e una nuova richiesta sulla pagina, ma mi piacerebbe farlo con Ajax...

    Illuminatemi sulla mia castroneria!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    185
    Non ho mai provato ma ad occhio dovresti prima caricare il js con include_js

    Una volta sicuro che è caricato il js eseguire prima GLoadMapsScript() e poi il resto dei parametri e funzioni per creare la mappa

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