2012-09-05 10 views
9

मैं एक डीआईवी के अंदर दिखाई देने वाली सामग्री को बदलने के लिए संभव बनाने की कोशिश कर रहा हूं जो एक infowindow की सामग्री है। मैं infowindow के अंदर हैलो से YO सामग्री को बदलने में सक्षम हूं। समस्या तब होती है जब मैं infowindow को बंद करता हूं और इसे फिर से खोलता हूं, अद्यतन सामग्री वापस मूल पर वापस आती है।सामग्री बदलें इन्फॉइंडो मानचित्र v3

google.maps.event.addListener(drawingManager, 'overlaycomplete', function(event) { 
     if (event.type == google.maps.drawing.OverlayType.MARKER) { 
      //event.overlay.setTitle("Hello"); 
      var infowindow = new google.maps.InfoWindow({ 
       content: '<div id="content" onmouseover="updateContent()">Hello</div>', 
       maxWidth: 10 
      }); 
      google.maps.event.addListener(event.overlay, 'click', function() { 
       infowindow.open(map, event.overlay); 
      }); 
     } 
    }); 

    function updateContent() { 
     document.getElementById('content').innerHTML = "Yo"; 
    } 

मैं मूल रूप से एक डिफ़ॉल्ट जानकारी विंडो उपयोगकर्ता इनपुट के लिए अपने स्वयं के पाठ बना सकते हैं और अनुमति देने के लिए वे पृष्ठ पर marke देने के बाद चाहते हैं ...

उत्तर

5

आप सेट करने के लिए: नीचे मेरी कोड है setContentHTML विधि के माध्यम से सामग्री

var infowindow ; 
google.maps.event.addListener(drawingManager, 'overlaycomplete', function(event) { 
    if (event.type == google.maps.drawing.OverlayType.MARKER) { 
     //event.overlay.setTitle("Hello"); 
     infowindow = new google.maps.InfoWindow({ 
      content: '<div id="content" onmouseover="updateContent()">Hello</div>', 
      maxWidth: 10 
     }); 
     google.maps.event.addListener(event.overlay,'click',function() 
     infowindow.open(map,event.overlay); 
    }); 
}}); 

function updateContent(){ 
    infowindow.setContent("YO"); 
} 
+0

जब मैंने यह कोशिश की है तो मुझे एक त्रुटि मिलती है जो सेट हैन्टेंट एचटीएमएल Google की जानकारी का एक तरीका नहीं है विन्डो ऑब्जेक्ट (मुझे विश्वास है कि यह मानक डीएचटीएम है लेकिन Google की जानकारीविंडो ऑब्जेक्ट इसे प्राप्त नहीं करता है)। ओपी के उद्देश्य को प्राप्त करने के लिए मैंने मौजूदा जानकारी को अलग किया विन्डो, नई सामग्री के साथ एक नई जानकारीविंडो ऑब्जेक्ट बनाया, फिर मौजूदा मार्कर से जुड़ा हुआ। –

+7

आप इसके बजाय "infowindow.setContent (...)" फ़ंक्शन का उपयोग कर सकते हैं, जो मेरे लिए अच्छा काम करता है :) – ghedas

+2

अच्छी पहचान –

12

मैंने पाया के रूप में मैं setContent() का उपयोग करने के रूप में निम्न प्रकार था ऊपर स्वीकार किए जाते हैं जवाब काम नहीं किया:

google.maps.event.addListener(drawingManager, 'overlaycomplete', function (event) { 
    if (event.type == google.maps.drawing.OverlayType.MARKER) { 
     //event.overlay.setTitle("Hello"); 
     var infowindow = new google.maps.InfoWindow({ 
      content: '<div id="content" onmouseover="updateContent()">Hello</div>', 
      maxWidth: 10 
     }); 
     google.maps.event.addListener(event.overlay, 'click', function() { 
      infowindow.open(map, event.overlay); 
     }); 
    } 
}); 
function updateContent() { 
    infowindow.setContent("Yo"); 
} 
संबंधित मुद्दे