दिलचस्प पोस्ट
सरणी php के माध्यम से लूप पायथन में किसी पथ से एक्सटेंशन के बिना फ़ाइल नाम कैसे प्राप्त करें? CameraUpdateFactory.newLatLngBounds क्रैश के साथ कैमरे को ले जाएं पायथन में समाप्त होने के लिए प्रतीक्षा किए बिना मैं एक और स्क्रिप्ट कैसे चलाऊँ? जीएनयू / लिनक्स पर एक सबवर्जन (एसवीएन) सर्वर कैसे सेट करें – उबंटू क्यों strsplit सकारात्मक lookahead का उपयोग करता है और देखने के लिए अलग पहचान मैच अलग? xmpp में php मेल सेटअप 'एलडी: चेतावनी: विकल्प के लिए निर्देशिका नहीं मिली' mysqli: क्या यह एक कथन में कई क्वेरी तैयार कर सकता है? विजुअल स्टूडियो अजीब काम कर रहा है मैं यह कैसे तय करुं? NSUserDefaults में छवियों को सहेजें? ट्रांसफ़ाइल एसिंक Babel.js के साथ प्रतीक्षा प्रस्ताव? एंड्रॉइड फेसबुक एसडीके 3.0 "दूरस्थ एप_आईड संग्रहीत आईडी से मेल नहीं खाता है" देता है एसक्यूएल इंजेक्शन क्या है? मैं Google Chrome JavaScript कंसोल में डीबग संदेशों को कैसे प्रिंट करूं?

Google मानचित्र एपीआई v3: इन्फोवंडो सही ढंग से आकार नहीं ले रहा है

यह मेरी InfoWindow प्रतीत होता है, जब आप अपने Google मानचित्र v3 पर होम आइकन पर क्लिक करते हैं, तो जानकारी विंडो की सामग्री को ठीक से स्वत: आकार नहीं दे रहा है।

यह स्क्रॉलबार देता है जब इसे नहीं करना चाहिए इन्फोवंडो को ठीक से ऑटो-आकार देने चाहिए

क्यों पर कोई विचार?

अनुरोध के अनुसार, प्रासंगिक जावास्क्रिप्ट जो कि InfoWindow के लिए एचटीएमएल को इंजेक्ट करता है:

listing = '<div>Content goes here</div>'; 

वेब के समाधान से एकत्रित समाधान "Google मानचित्र एपीआई v3: इन्फोवंडो सही ढंग से आकार नहीं ले रहा है"

अपने इन्फूमंडो में एक डिवा जोड़ें

 <div id=\"mydiv\">YourContent</div> 

फिर सीएसएस का उपयोग करके आकार सेट करें। मेरे लिये कार्य करता है। यह मानता है कि सभी infowindows एक ही आकार हैं!

 #mydiv{ width:500px; height:100px; } 

संक्षिप्त उत्तर: कन्स्ट्रक्टर में मैक्सविड्थ ऑप्शंस प्रॉपर्टी सेट करें हां, यहां तक ​​कि अधिकतम चौड़ाई निर्धारित करने के बावजूद आप क्या करना चाहते थे।

लंबी कहानी: v3 को v3 में माइग्रेट करना, मैंने वास्तव में वर्णित समस्या देखी। विंडोज चौड़ाई और ऊंचाई में भिन्नता है, और कुछ में ऊर्ध्वाधर स्क्रॉलबार थे और कुछ नहीं थे। कुछ लोगों ने <br /> को डेटा में एम्बेडेड किया था, लेकिन कम से कम एक के आकार के ओके के साथ।

मुझे नहीं लगता कि InfoWindowsOptions.maxWidth संपत्ति प्रासंगिक थी, क्योंकि मुझे चौड़ाई को सीमित करने की परवाह नहीं थी … लेकिन इसे InfoWindow कन्स्ट्रक्टर के साथ सेट करके, मुझे मिल गया जो मैं चाहता था, और खिड़कियां अब स्वत: आकार (खड़ी) और ऊर्ध्वाधर स्क्रॉलबार के बिना पूरी सामग्री दिखाएं। मुझे बहुत समझ नहीं है, लेकिन यह काम करता है!

देखें: http://fortboise.org/maps/sailing-spots.html

आपको सामग्री को jQuery ऑब्जेक्ट से InfoWindow पर देना चाहिए।

 var $infoWindowContent = $("<div class='infowin-content'>Content goes here</div>"); var infoWindow = new google.maps.InfoWindow(); infowindow.setContent($infoWindowContent[0]); 
 .gm-style-iw{ height: 100% !important; overflow: hidden !important; } 

इससे मेरा काम बनता है

संपादित (असाधारण): इस सवाल पर सौ अन्य उत्तरों में से, मुझ पर भरोसा करें, यह एकमात्र सही है जो यह बताता है कि यह क्यों हो रहा है

ठीक है, इसलिए मुझे पता है कि यह धागा बूढ़ा है, और एक हजार उत्तरों हैं, लेकिन उनमें से कोई भी सही नहीं है और मुझे सही उत्तर पोस्ट करने की आवश्यकता महसूस हो रही है।

सबसे पहले, आपको अपनी जानकारी विन्डो स्क्रॉलबार के बिना प्रदर्शित करने के लिए कभी भी width's या height's को निर्दिष्ट करने की आवश्यकता नहीं है , हालांकि कभी-कभी आप ऐसा करकर गलती से काम कर सकते हैं (लेकिन यह अंततः विफल हो जाएगा)।

दूसरा, Google मानचित्र एपीआई infoWindow's पास स्क्रॉलिंग बग नहीं है, यह सही है कि वे कैसे काम करते हैं, यह सही जानकारी ढूंढना बहुत कठिन है। ठीक है, यहां यह है:

जब आप जानकारी में खोलने के लिए Google मानचित्र एपीआई बताते हैं तो इस तरह से:

 var infoWindow = new google.maps.InfoWindow({...}); .... infoWindow.setContent('<h1>Hello!</h1><p>And welcome to my infoWindow!</p>'); infoWindow.open(map); 

सभी उद्देश्यों और प्रयोजनों के लिए, Google मानचित्र अस्थायी रूप से आपके पृष्ठ के अंत में एक detached DOM tree ( वास्तव में यह एक detached DOM tree बनाता है – लेकिन यह समझना आसान है कि अगर मैं कहता हूं कि आप अपने पृष्ठ के अंत में एक div होने की जगह की कल्पना करते हैं ) आपके द्वारा निर्दिष्ट HTML सामग्री यह तब उस डिव (जो इसका मतलब है कि, इस उदाहरण में, जो भी मेरे दस्तावेज़ में सीएसएस नियम h1 और p टैग पर लागू होते हैं, इसे लागू किया जाएगा) को width और height प्राप्त करने के लिए उपाय करता है Google फिर उस div लेता है, उस माप को निर्दिष्ट करता है जो उसे मिला जब इसे आपके पृष्ठ में जोड़ा गया था, और उस स्थान पर आपके द्वारा निर्दिष्ट स्थान पर मानचित्र पर रख दिया गया है।

यहां पर जहां बहुत सारे लोगों के लिए समस्या होती है – उनके पास ऐसा HTML दिखाई दे सकता है:

 <body> <div id="map-canvas"><!-- google map goes here --></div> </body> 

और, जो भी कारण, सीएसएस जो इस तरह दिखता है:

 h1 { font-size: 18px; } #map-canvas h1 { font-size: 32px; } 

क्या आप समस्या देख सकते हैं? जब एपीआई आपकी जानकारी infoWindow (इसे प्रदर्शित करने से पहले) के माप को लेने की कोशिश करता है, तो सामग्री के h1 हिस्से में 18px आकार होगा (क्योंकि अस्थायी "मापने वाला div" शरीर में जोड़ा जाता है), लेकिन जब एपीआई वास्तव में जानकारी को मानचित्र पर infoWindow , #map-canvas h1 चयनकर्ता अग्रता लेता है जिससे फ़ॉन्ट आकार बहुत अधिक होता है जिससे कि एपीआई जानकारी के आकार को मापा जाता है और इस परिस्थिति में आप हमेशा स्क्रॉलबार्स प्राप्त करेंगे

विशिष्ट जानकारी के लिए थोड़ा अधिक भिन्न भिन्नताएं हो सकती हैं, क्योंकि आपकी जानकारी infoWindow में स्क्रॉलबार हैं, लेकिन इसकी वजह इसके पीछे कारण है:

समान सीएसएस नियमों को आपकी जानकारी के अंदर सामग्री पर लागू करना चाहिए, हालांकि infoWindow से वास्तविक HTML तत्व मार्कअप में दिखाई देता है। यदि वे नहीं करते हैं, तो आपको अपनी जानकारी में स्क्रॉलबार प्राप्त करने की गारंटी दी जाएगी Window

तो मैं हमेशा क्या करता हूं, ऐसा कुछ है:

 infoWindow.setContent('<div class="info-window-content">...your content here...</div>'); 

और मेरे सीएसएस में:

 .info-window-content { ... } .info-window-content h1 { .... } .info-window-content p { ... } etc... 

तो कोई बात नहीं जहां एपीआई यह माप डिवीज जोड़ता है – समापन body से पहले या #map-canvas अंदर, सीएसएस नियम लागू होते हैं, यह हमेशा समान होगा।

संपादित करें: फ़ॉन्ट परिवार

Google फ़ॉंट लोड करने की समस्या (नीचे वर्णित) पर सक्रिय रूप से काम कर रहा है और कार्यक्षमता बहुत हाल ही में बदल गई है ताकि जब आप अपनी जानकारी का उपयोग कर रहे एपीआई के संस्करण के आधार पर पहली बार पहली बार खोलते हों तो रोबोटो फ़ॉन्ट लोड न हो या न हो । एक खुली बग रिपोर्ट है (हालांकि चेंजेलो में इस बग रिपोर्ट को पहले से ही निश्चित रूप से चिह्नित किया गया था) जो दिखाता है कि Google को अभी भी इस समस्या के साथ समस्या आ रही है।

एक और बात: अपने फोंट परिवारों को देखो !!!

एपीआई के नवीनतम अवतार में, गूगल ने चालाक होने की कोशिश की और इसकी जानकारी लपेटने की कोशिश की। सीडी चयनकर्ता – .gm-style-iw साथ लक्षित किए जा सकने वाली कुछ चीज़ों में वर्ड सामग्री। उन लोगों के लिए जिन्हें मैंने ऊपर बताए गए नियमों को नहीं समझा, यह वास्तव में मदद नहीं करता था, और कुछ मामलों में इसे और भी बदतर बना दिया स्क्रॉलबार लगभग हमेशा पहली बार एक जानकारी infoWindow , लेकिन अगर आप किसी भी जानकारी को फिर से खोलते हैं, तो उसी सटीक सामग्री के साथ ही स्क्रॉलबार भी चले जाएँगे। गंभीरता से, यदि आप इससे पहले भ्रमित नहीं होते तो आप अपना दिमाग खो देंगे। यहाँ क्या हो रहा है:

यदि आप एपीआई लोड के दौरान पृष्ठ पर Google लोड्स की शैलियों को देखते हैं, तो आप इसे देख सकेंगे:

 .gm-style { font-family: Roboto,Arial,sans-serif ... } 

ठीक है, इसलिए Google इसे हमेशा नक्शे के साथ Roboto फ़ॉन्ट-परिवार का उपयोग करने के लिए थोड़ा अधिक संगत बनाना चाहता था। समस्या यह है कि अधिकांश लोगों के लिए, इससे पहले कि आप एक जानकारी infoWindow खोलते हैं, ब्राउज़र ने अभी तक Roboto फ़ॉन्ट नहीं डाला है (क्योंकि आपके पृष्ठ पर ऐसा कुछ नहीं है, इसलिए ब्राउज़र बहुत चालाक है, यह जानने के लिए कि इसकी आवश्यकता नहीं है इस फ़ॉन्ट को डाउनलोड करने के लिए) यह फ़ॉन्ट डाउनलोड करना तात्कालिक नहीं है, भले ही यह बहुत तेज़ हो। पहली बार जब आप एक जानकारी विंडो खोलते हैं और एपीआई आपकी सूचना के साथ div को जोड़ता है, तो इसे मापने के लिए शरीर में सामग्री को infoWindow लिए, यह Roboto फ़ॉन्ट डाउनलोड करना शुरू करता है, लेकिन आपकी जानकारी infoWindow's मापन ली जाती है और Roboto डाउनलोड समाप्त होने से पहले विंडो को मानचित्र पर रखा जाता है । नतीजा, अक्सर एक जानकारी थी, जिसकी माप तब ली गई थी जब इसकी सामग्री को Arial या sans-serif फ़ॉन्ट का उपयोग किया गया था, लेकिन जब मैप पर प्रदर्शित किया गया था (और Roboto डाउनलोड करना समाप्त कर दिया था) यह सामग्री फ़ॉन्ट में प्रदर्शित की जा रही थी यह एक अलग आकार था – और वोला – स्क्रॉलबार पहली बार दिखाई देते हैं जब आप जानकारी खोलते हैं। सटीक एक ही जानकारी infoWindow दूसरी बार infoWindow उस बिंदु पर जो Roboto को डाउनलोड किया गया है और जब एपीआई जानकारी के मापन के बारे में जानकारी लेगा, तब आप उपयोग करेंगे और आप किसी स्क्रॉलबार को नहीं देखेंगे।

मैंने सूचीबद्ध सभी उत्तरों में से एक की कोशिश की कोई भी मेरे लिए काम नहीं करता आखिरकार इसे स्थायी रूप से तय किया गया था मेरे द्वारा प्राप्त कोड में सभी <h#> और <p> प्रविष्टियों के आसपास एक DIV आवरण था मैंने एक ही डीआईवी में कुछ "शैली" को मजबूर कर दिया, खाते को वांछित अधिकतम चौड़ाई में ले लिया, बस के मामले में रेखा की ऊंचाई में फेंक दिया (किसी और के फिक्स) और मेरा अपना white-space: nowrap , जिसने तब ऑटो अतिप्रवाह बना दिया सही समायोजन कोई स्क्रॉल बार नहीं, कोई कटौती नहीं और कोई समस्या नहीं है!

 html = '<div class="map-overlay" style="max-width: 400px; line-height: normal; white-space: nowrap; overflow: auto; ">'; 

मुझे पता है यह एक पुरानी धागा है, लेकिन मुझे एक ही समस्या का सामना करना पड़ा। मेरे पास InfoWindow में <h2> और <p> तत्व थे, और इन दोनों के नीचे मार्जिन थे मैंने मार्जिन हटा दिया, और जानकारी विंडो सही ढंग से आकार की थी अन्य सुझावों में से कोई भी काम नहीं किया। मुझे संदेह है कि InfoWindow आकार की गणना हाशिए खाते में नहीं लेती।

सूची में अपना जवाब जोड़ने के लिए जा रहे हैं, क्योंकि इनमें से कोई भी मेरी समस्या तय नहीं करता है मैंने अपनी सामग्री को एक div में लपेटकर समाप्त किया, उस div को एक वर्ग दिया, और div पर min-width निर्दिष्ट किया, और maxWidth पर maxWidth निर्दिष्ट किया, और दोनों को एक ही आकार की आवश्यकता थी, अन्यथा या तो चौड़ाई या ऊँचाई बक्से पर सिर्फ सामग्री की गलत राशि के साथ बह निकली होगी

जावास्क्रिप्ट:

 // Set up the content for the info box var content = "<div class='infowindow-content'>" + content + "</div>"; // create a map info box var infoWindow = new google.maps.InfoWindow({ maxWidth: 350, content: content }); 

सीएसएस:

 div.infowindow-content { min-width: 350px; } 

मैंने इन सभी समाधानों की कोशिश की और कोई भी काम नहीं किया। कुछ परीक्षण और त्रुटि के बाद मुझे यह पता चल गया।

 <style type="text/css"> #map_canvas { line-height:normal; } </style> 

पंक्ति-ऊंचाई निर्धारित करें: नक्शा कैनवास डिवेल के लिए सामान्य

ऐसा प्रतीत होता है कि मुद्दा रोबोटो वेबफॉन्ट के साथ है

प्रदान की गई सामग्री के आधार पर इनलाइन चौड़ाई और ऊंचाई गुणों के साथ infowindow प्रदान किया जाता है हालांकि, यह पहले से ही प्रस्तुत / लोड किए गए वेबफॉन्ट के साथ गणना नहीं की गई है पूरे नक्शे के स्क्रीन पर मुद्रित होने के बाद फ़न्ट प्रस्तुति के बाद, यह स्क्रॉलबार को "ओवरफ्लो: ऑटो" गुणों की वजह से दिखाई देता है जो खिड़की के डीआईवी के अंदर इनलाइन होता है।

मैं काम करने वाला समाधान एक डीआईवी में सामग्री लपेट करना है और फिर वेबफ़ॉन्ट को ओवरराइड करने के लिए सीएसएस को लागू करना है:

 .gmap_infowin { font-family: sans-serif !important; font-weight: normal !important; } <div class="gmap_infowin">Your info window content here.</div> 

अजीब बात है, जबकि निम्न कोड WIDTH स्क्रॉल बार को सही करेगा:

 .gm-style-iw { overflow: hidden !important; line-height: 1.35; } 

यह हाईवेट स्क्रॉल बार को सही करने के लिए ले लिया:

  .gm-style-iw div { overflow: hidden !important; } 

संपादित करें: व्हाइट-स्पेस जोड़ना: अब्रॉप; या तो शैली को रिक्ति की समस्या को ठीक कर सकता है, जब स्क्रॉल सलाखों को निकाल दिया जाता है, तो लग रहा है। महान बिंदु नाथन

यह मेरे लिए काम करता है setContent में एक div रखें

 sh_map.infoWindow.setContent([ '<div id=\"mydiv\">', 'Your content goes here', ].join('')); 

फिर अपने पेज को इस सीएसएस को जोड़ें:

 <style type="text/css"> #map-canvas { text-align: center; vertical-align: middle; } #mydiv { font-family: "Comic Sans MS", cursive; font-size: 10px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; letter-spacing: normal; text-align: center; vertical-align: middle; word-spacing: normal; } </style> 

उदाहरण के लिए, http://www.student-homes-northampton.co.uk देखें; Google नक्शे को प्रदर्शित करने के लिए घर चित्रों के अंतर्गत लिंक पर क्लिक करें।

इसने मेरी समस्या को पूरी तरह से हल किया:

 .gm-style-iw { overflow: visible !important; height: auto !important; width: auto !important; } 

मुझे IE के साथ एक ही समस्या थी और इन प्रतिक्रियाओं में विस्तृत फ़िक्स किए गए थे, लेकिन IE में ऊर्ध्वाधर स्क्रॉलबार को मज़बूती से निकालने में असमर्थ थे I

मेरे लिए सबसे अच्छा काम करने के लिए इंफिनोन्डो के अंदर फिक्स फॉन्ट आकार में बदलाव करना था – 'पीएक्स' … मैं ईएमएस का इस्तेमाल कर रहा था फ़ॉन्ट आकार तय करके मुझे अब इन्फंडोन्डो चौड़ाई या ऊँचाई स्पष्ट रूप से घोषित करने की जरूरत नहीं है और स्क्रॉलबार अच्छे के लिए चले गए थे

नक्शा कंटेनर की ऊंचाई भी महत्वपूर्ण है यदि छोटी जानकारी के लिए हमेशा विंडो हमेशा 80px ऊंचाई पर होगी वरना maxWidth और #innerDiv फिक्स जादू की तरह काम करता है

अगर कुछ भी नहीं, खिड़की खोलने के बाद सामग्री जोड़ने का प्रयास करें। इसे इसे आकार देने के लिए मजबूर होना चाहिए

 infoWindow = new google.maps.InfoWindow() infoWindow.open(map, marker) infoWindow.setContent(content) 

डोमब्रिड ईवेंट का प्रयोग करें और जानकारी विंडो को फिर से खोलें और डोम तत्वों को लोड किए जाने के लिए डोमब्रिड ईवेंट दो बार आग लगाने के बाद छिपी हुई सामग्री दिखाएं।

 // map is created using google.maps.Map() // marker is created using google.maps.Marker() // set the css for the content div .infowin-content { visibility: hidden; } infowindow = new google.maps.InfoWindow(); infowindow.setContent("<div class='infowin-content'>Content goes here</div>"); infowindow.setPosition(marker.getPosition()); infowindow.set("isdomready", false); infowindow.open(map); // On Dom Ready google.maps.event.addListener(infowindow, 'domready', function () { if (infowindow.get("isdomready")) { // show the infowindow by setting css jQuery('.infowin-content').css('visibility', 'visible'); } else { // trigger a domready event again. google.maps.event.trigger(infowindow, 'content_changed'); infowindow.set("isdomready", true); } } 

मैंने सिर्फ एक सेट टाइमआउट (/ * शो infowin कॉलबैक * /, 100) करने की कोशिश की, लेकिन कभी-कभी यह तब तक काम नहीं करता जब तक सामग्री (यानी: छवियों) को लोड करने में बहुत अधिक समय लग गया।

उम्मीद है इससे आपका काम बनेगा।

मैं एक ही मुद्दा रहा था, खासकर ध्यान देने योग्य जब मेरी <h2> तत्व दूसरी पंक्ति में लिपटा हुआ था।

मैंने infoWindow में एक <div> लिए एक वर्ग को लागू किया, और फोंट को सामान्य सिस्टम फ़ॉन्ट (मेरे मामले में, हेल्वेस्टिका) में बना दिया जो कि @ फ़ॉन्ट-फेस वेब फॉन्ट का उपयोग कर रहा था जो इसे इस्तेमाल कर रहा था। समस्या का समाधान हो गया।

 //infowindow.setContent(response); var infowindowopts = { maxWidth: 274, content: response }; infowindow.setOptions(infowindowopts); 

अपनी जानकारी में एक min-height जोड़ेंविंडो वर्ग तत्व

यह समस्या को हल करेगा यदि आपकी जानकारी सभी समान आकार के हैं

यदि नहीं, तो जानकारी के लिए अपने क्लिक समारोह में jQuery की इस पंक्ति को जोड़ें Window:

 //remove overflow scrollbars $('#myDiv').parent().css('overflow',''); 

मैं किसी भी रूप या आकार में काम करने के लिए इसे प्राप्त नहीं कर सका, मैं बॉक्स में 3 डिवांस शामिल था मैंने उन्हें एक बाहरी डिवा में लपेटकर, चौड़ाई और ऊंचाइयों के साथ सभी सेट सही तरीके से, और कुछ भी काम नहीं किया।

अंत में मैंने इसे div को पूर्ण शीर्ष बाएं सेट करके तय किया था, और फिर div से पहले, मैंने एक पारदर्शी जीआईएफ के दो छवियाँ, एक 300px wide और 1px high, एक 120px high और 1px wide सेट की थी।

यह ठीक से ठीक है!

इसकी बदसूरत लेकिन यह काम करता है

आप एक छवि भी कर सकते हैं और मुझे उम्मीद है कि अगर आपकी खिड़की में कोई इंटरैक्शन नहीं है, तो सिर्फ एक इमेज या सिर्फ एक इमेज सेट कर सकते हैं, लेकिन यह एक फॉर्म वाला था, इसलिए, यह एक विकल्प नहीं था …

मुझे लगता है कि यह व्यवहार बाहरी कंटेनर में कुछ सीएसएस स्टाइल के कारण है, मुझे एक ही समस्या थी, लेकिन मैंने इसे एक आंतरिक div का उपयोग करके इसे कुछ पैडिंग जोड़कर हल किया, मुझे पता है कि यह अजीब है लेकिन यह समस्या का हल

 <div id="fix_height"> <h2>Title</h2> <p>Something</p> </div> 

और मेरी शैली.css में

 div#fix_height{ padding: 5px; } 

मेरे पास एक इनलाइन तत्व (एक टैग) था जिसमें सीधे div अंदर style="overflow:auto"[... लिपटा हुआ था कि एक p टैग में और इसे तय किया गया था।

ऐसा लगता है कि किसी भी इनलाइन तत्व को किसी अवरोध तत्व में सीधे नेविगेशन के अंदर नहीं बनाया गया है, जिससे यह संभव होगा।

मेरा जवाब एक श्रोता जोड़ने के लिए है (ऐडलिस्टनर एक बार का उपयोग करके) यह देखने के लिए कि क्या जानकारी विंडो को डोम में जोड़ दिया गया है, फिर जानकारी खोलना (फिर इसे बंद करने की कोई आवश्यकता नहीं है)।

 // map, marker and infoWindow code, we'll call them // myMap, myMarker and myInfoWindow myInfoWindow.open(myMap, myMarker); google.maps.event.addListenerOnce(myInfoWindow, 'domready', function(){ myInfoWindow.open(myMap, myMarker); }); 

मेरे सीएसएस के लिए निम्नलिखित जोड़ना मेरे लिए चाल थी:

 white-space: nowrap; 

बस सभी ब्राउज़रों में मेरे लिए काम करने वाले सभी समाधानों को सारांशित करने के लिए:

  • Infowindow के अंदर मार्जिन का प्रयोग न करें, केवल पैडिंग
  • Infowindow के लिए अधिकतम चौड़ाई सेट करें:

    this.infowindow = new google.maps.InfoWindow({ maxWidth: 200 });

  • Infowindow की सामग्री को उसके साथ लपेटें

    <div style="overflow:hidden;line-height:1.35;min-width:200px;">*CONTENT*</div>

    (आप infowindow maxWidth पर सेट मान के लिए न्यूनतम-चौड़ाई परिवर्तित करें)

मैंने इसे परीक्षण किया है और यह हर ब्राउज़र पर काम किया है, और मेरे पास 400 से अधिक मार्कर हैं …

मुझे पता है कि बहुत से अन्य लोगों ने अपने विशेष मामले के लिए काम करने वाले समाधान पाये हैं, लेकिन उनमें से कोई भी मेरे विशेष मामले के लिए काम नहीं करता है, इसलिए मैंने सोचा कि यह किसी और के लिए सहायक हो सकता है

कुछ विवरण:

मैं एक ऐसे प्रोजेक्ट पर Google मानचित्र एपीआई v3 का उपयोग कर रहा हूं जहां इनलाइन सीएसएस हम वास्तव में है, वास्तव में से बचने के लिए करना चाहते हैं। आईई 11 को छोड़कर सब कुछ के लिए मेरी इन्फंड इंडोस्ट्स काम कर रही थीं, जहां चौड़ाई की गणना ठीक से नहीं की गई थी। इसकी वजह से डिवल ओवरफ्लो हुआ, जो स्क्रॉलबार को ट्रिगर करता था।

मुझे तीन चीजें करना था:

  1. सभी डिस्प्ले को निकालें: इनलाइन ब्लॉक शैली के नियम इनफॉइंडो सामग्री के अंदर से कुछ (मैं डिस्प्ले: ब्लॉक के साथ बदल चुका हूं) – मुझे ये धागे से कोशिश करने का विचार मिला (जो मुझे अब नहीं मिल सकता है) जहां किसी के पास वही है IE6 के साथ समस्या

  2. एक स्ट्रिंग के रूप में की बजाय DOM नोड के रूप में सामग्री को पास करें। मैं jQuery का उपयोग कर रहा हूं, इसलिए मैं इसे बदलकर ऐसा कर सकता हूं: infowindow.setContent(infoWindowDiv.html()); infowindow.setContent($(infoWindowDiv.html())[0]); यह मेरे लिए सबसे आसान साबित हुआ, लेकिन एक ही परिणाम प्राप्त करने के कई अन्य तरीके हैं।

  3. "SetMaxWidth" हैक का उपयोग करें – कन्स्ट्रक्टर में मैक्सवड्थ विकल्प सेट करें – विकल्प को सेट करने के बाद में काम नहीं करता। यदि आप वास्तव में अधिकतम चौड़ाई नहीं चाहते हैं, तो इसे बहुत बड़ी संख्या में सेट करें

मुझे नहीं पता है कि ये क्यों काम करते हैं, और मुझे यकीन नहीं है कि उनमें से कोई एक समूह काम करेगा। मुझे पता है कि उनमें से कोई भी मेरे सभी उपयोग मामलों के लिए अलग-अलग काम करता है, और 2 + 3 काम नहीं करता है मेरे पास 1 + 2 या 1 + 3 का परीक्षण करने का समय नहीं था

यह मेरे लिए हार्ड कोड की जानकारी खिड़की की चौड़ाई और ऊंचाई पर स्वीकार्य नहीं था, या white-space: nowrap को सेट करने के लिए white-space: nowrap maxWidth , maxWidth समाधान ने मेरी मदद नहीं की और बाकी सब कुछ काम नहीं कर रहा था या अन्यथा मेरे लिए अनुचित था उदाहरण।

मेरा समाधान सामग्री सेट करना था, खिड़की खोलता है और फिर जब domready ईवेंट निकाल दिया जाता है, तो सामग्री पर height सीएसएस संपत्ति को जो भी ऊंचाई है, सेट करें और उसके बाद Google Maps को InfoWindow का आकार बदलने के लिए मजबूर करें।

infoWindow InfoWindow ऑब्जेक्ट है, $infoWindowContents infoWindowContents मैं उस सामग्री का एक Jquery ऑब्जेक्ट है जिसे मैं वहां रखना चाहता हूं, map मेरा नक्शा ऑब्जेक्ट है I marker एक मार्कर है, जिसे क्लिक किया गया था।

 infoWindow.setContent($infoWindowContents.get(0)); var listener = google.maps.event.addListener(infoWindow, 'domready', function() { // Stop listening, otherwise the listeners stack up if the window is opened again google.maps.event.removeListener(listener); // Set the height on the container to however tall the browser is currently rendering it $infoWindowContents.height($infoWindowContents.height()); // Force Google Maps to recalculate the InfoWindow height infoWindow.setContent($infoWindowContents.get(0)); }); infoWindow.open(map, marker); 

(मैंने एक समान समाधान के बारे में एक समान प्रश्न पर पोस्ट किया, मैं उस सामग्री को फिट करने के लिए आकार बदलने के लिए Google-map InfoWindow कैसे प्राप्त करूं?

समय खोने और कुछ समय के लिए पढ़ने के बाद, मैं बस कुछ सरल चाहता था, इस सीएसएस ने मेरी आवश्यकताओं के लिए काम किया।

 .gm-style-iw > div { overflow: hidden !important; } 

इसके अलावा एक त्वरित समाधान नहीं है, लेकिन इस मुद्दे पर अभिनीत / टिप्पणी करने से वे इसे ठीक कर सकते हैं, क्योंकि उनका मानना ​​है कि यह तय है: http://code.google.com/p/gmaps-api-issues/issues/detail?id= 5713

वैसे यह मेरे लिए चाल है:

 .gm-style-iw>div { overflow: visible !important; } 

केवल overflow: visible सेट करना overflow: visible .gm-style-iw पर overflow: visible वास्तव में समस्या खराब हो गई है! मैंने क्रोम डेवलपर टूल इंस्पेक्टर में देखा कि .gm-style-iw तत्व के अंदर दो डिवाईज़ हैं, दोनों जो overflow: auto डिफ़ॉल्ट रूप से overflow: auto सेट

I'm displaying quite a lot of HTML-formatted text in my InfoWindows, that might be why the other solutions didn't work at all for me.