2016-07-27 2 views
-1

Ich versuche, Code erwähnt here zu beenden. Aber etwas schief geht da ich neu in Java-Scripting bin, meine Vermutung ist, dass die Karte einfach nicht richtig geladen wird. DIV wird in neuer Registerkarte erstellt, auch Text. Bitte helfen Sie mir, benutzerdefinierte Karte in neuen Tab zu öffnen. Hier ist der Code:benutzerdefinierte Google-Karte in einem neuen Fenster

<!DOCTYPE html> 
<html> 
<head> 
<title>test</title> 
</head> 
<body> 
    <script> 
    function newWindow() { 
    var w = window.open('', '_blank'); //you must use predefined window name here for IE. 
    var head = w.document.getElementsByTagName('head')[0]; 

    //Give some information about the map: 
    w.document.head.innerHTML = '<title>Simple Map</title></head>'; 
    w.document.body.innerHTML = '<body><H1>Loading</H1><div id="map_canvas" style="display: block; width: 500px; height: 300px; margin: 0; padding: 0;"></div></body>'; 

    var loadScript = w.document.createElement('script'); 
    //Link to script that load google maps from hidden elements. 
    loadScript.type = "text/javascript"; 
    loadScript.async = true; 
    loadScript.src = "https://maps.googleapis.com/maps/api/js?sensor=false&callback=initialize"; 

    var googleMapScript = w.document.createElement('script'); 
    //Link to google maps js, use callback=... URL parameter to setup the calling function after google maps load. 
    googleMapScript.type = "text/javascript"; 
    googleMapScript.async = true; 
    googleMapScript.text = 'var mapOptions = {center: new google.maps.LatLng(50.4,30.50),zoom: 6, mapTypeId: google.maps.MapTypeId.TERRAIN}; var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);'; 

    head.appendChild(loadScript); 
    head.appendChild(googleMapScript); 
    } 
    //addLoadEvent(loadScript); 
    </script> 
    <button onclick="newWindow()">Click me</button> 
</body> 
</html> 

Antwort

0

Es sieht aus wie Sie die initialize() Funktion in Ihrem zweiten Skriptobjekt hat definieren.

Der Code sollte

<!DOCTYPE html> 
<html> 
<head> 
    <title>test</title> 
</head> 
<body> 
    <script> 
    function newWindow() { 
     var w = window.open('', '_blank'); //you must use predefined window name here for IE. 
     var head = w.document.getElementsByTagName('head')[0]; 

     //Give some information about the map: 
     w.document.head.innerHTML = '<title>Simple Map</title></head>'; 
     w.document.body.innerHTML = '<body><H1>Loading</H1><div id="map_canvas" style="display: block; width: 500px; height: 300px; margin: 0; padding: 0;"></div></body>'; 

     var loadScript = w.document.createElement('script'); 
     //Link to script that load google maps from hidden elements. 
     loadScript.type = "text/javascript"; 
     loadScript.async = true; 
     loadScript.src = "https://maps.googleapis.com/maps/api/js?sensor=false&callback=initialize"; 

     var googleMapScript = w.document.createElement('script'); 
     //Link to google maps js, use callback=... URL parameter to setup the calling function after google maps load. 
     googleMapScript.type = "text/javascript"; 
     googleMapScript.async = false; 
     googleMapScript.text = 'function initialize() {var mapOptions = {center: new google.maps.LatLng(50.4,30.50),zoom: 6, mapTypeId: google.maps.MapTypeId.TERRAIN}; var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);}'; 

     head.appendChild(loadScript); 
     head.appendChild(googleMapScript); 
    } 
    //addLoadEvent(loadScript); 
</script> 
<button onclick="newWindow()">Click me</button> 
</body> 
</html> 

Sie sich das Beispiel auf jsbin sehen: zu http://jsbin.com/loyaca/edit?html,output

+0

Dank Xomena, dass die Wechselwirkendes Kodierungsstelle arbeitet und für! – amberija

+0

Fühlen Sie sich frei, die Antwort zu akzeptieren. Dies ist ein SO Weg um Danke zu sagen. :) – xomena