इस पेज पर यूज़र इंटरफ़ेस के उन इवेंट और गड़बड़ी के इवेंट की जानकारी दी गई है जिन्हें सुनने और मैनेज करने की सुविधा आपके पास होती है प्रोग्रामेटिक रूप से.
यूज़र इंटरफ़ेस इवेंट
ब्राउज़र के अंदर JavaScript इवेंट के आधार पर होता है. इसका मतलब है कि JavaScript इवेंट जनरेट करके इंटरैक्शन का जवाब देता है और दिलचस्प इवेंट को सुनने का प्रोग्राम. इसके दो तरह के होते हैं इवेंट:
- उपयोगकर्ता इवेंट (जैसे कि "क्लिक" माउस इवेंट) को DOM से Maps JavaScript API. ये इवेंट, इवेंट से अलग होते हैं और इवेंट से अलग होते हैं स्टैंडर्ड डीओएम इवेंट.
- एमवीसी की स्थिति में हुए बदलाव की सूचनाओं से, Maps JavaScript API में हुए बदलावों का पता चलता है
ऑब्जेक्ट हैं और
property_changed
कन्वेंशन का इस्तेमाल करके उनके नाम दिए जाते हैं.
हर Maps JavaScript API ऑब्जेक्ट, नाम वाले कई इवेंट एक्सपोर्ट करता है.
कुछ खास इवेंट में दिलचस्पी रखने वाले प्रोग्राम के लिए, JavaScript इवेंट लिसनर को रजिस्टर किया जाएगा
और कोड तब एक्ज़ीक्यूट करता है, जब वे इवेंट
ऑब्जेक्ट पर इवेंट हैंडलर रजिस्टर करने के लिए, addListener()
को कॉल किया जा रहा है.
नीचे दिए गए सैंपल में आपको दिखेगा कि google.maps.Map
से कौनसे इवेंट ट्रिगर होते हैं
का उपयोग करें.
इवेंट की पूरी सूची के लिए, यहां देखें: Maps JavaScript API का संदर्भ. हर उस ऑब्जेक्ट के लिए, इवेंट एक अलग सेक्शन में लिस्ट किए जाते हैं जिसमें इवेंट होते हैं.
यूज़र इंटरफ़ेस (यूआई) इवेंट
Maps JavaScript API में मौजूद कुछ ऑब्जेक्ट, जवाब देने के लिए डिज़ाइन किए गए हैं
जैसे, माउस या कीबोर्ड इवेंट
के लिए इस्तेमाल किया जा सकता है. उदाहरण के लिए, यहां कुछ लोग
ये इवेंट, google.maps.marker.AdvancedMarkerElement
ऑब्जेक्ट सुन सकता है:
'click'
'drag'
'dragend'
'dragstart'
'gmp-click'
पूरी सूची देखने के लिए, AdvancedMarkerElement क्लास. ये इवेंट, स्टैंडर्ड डीओएम इवेंट जैसे दिख सकते हैं. हालांकि, असल में ये इनका हिस्सा होते हैं में देख सकते हैं. क्योंकि अलग-अलग ब्राउज़र अलग-अलग डीओएम इवेंट मॉडल लागू करें, जैसे कि Maps JavaScript API इन मैकेनिज़्म को बिना किसी ज़रूरत के DOM इवेंट को सुनने और उनका जवाब देने के लिए कहते हैं क्रॉस-ब्राउज़र की अलग-अलग विशेषताएं हैंडल कर सकता है. ये इवेंट आम तौर पर तर्क भी पास करते हैं कुछ यूज़र इंटरफ़ेस (यूआई) स्थिति (जैसे कि माउस की स्थिति) को नोट करने वाले इवेंट के अंदर.
एमवीसी के स्टेटस में बदलाव
एमवीसी ऑब्जेक्ट में आम तौर पर स्थिति होती है. जब भी किसी ऑब्जेक्ट की प्रॉपर्टी बदलती है,
Maps JavaScript API, उस इवेंट को ट्रिगर करेगा जिसे प्रॉपर्टी में बदलाव किया गया है.
उदाहरण के लिए, मैप का ज़ूम होने पर एपीआई, मैप पर zoom_changed
इवेंट ट्रिगर करेगा
स् तर के बदलाव. स्टेटस में हुए बदलावों को देखने के लिए, कॉल करें
addListener()
का इस्तेमाल करें.
उपयोगकर्ता इवेंट और एमवीसी स्थिति में किए गए बदलाव एक जैसे दिख सकते हैं. हालांकि, सामान्य तौर पर
का इस्तेमाल करें. उदाहरण के लिए, एमवीसी इवेंट पास नहीं होते
अपने इवेंट में आर्ग्युमेंट का इस्तेमाल करें. आपको उस प्रॉपर्टी की जांच करनी होगी जिसमें
सही को कॉल करके MVC में बदलाव पर
उस ऑब्जेक्ट पर getProperty
तरीका है.
इवेंट हैंडल करना
इवेंट की सूचनाएं पाने के लिए रजिस्टर करने के लिए, addListener()
का इस्तेमाल करें
इवेंट हैंडलर. उस तरीके को सुनने के लिए एक इवेंट लगता है और
फ़ंक्शन का इस्तेमाल करें, ताकि बताए गए इवेंट के होने पर कॉल किया जा सके.
उदाहरण: मैप और मार्कर इवेंट
यह कोड, उपयोगकर्ता इवेंट को स्थिति में बदलाव वाले इवेंट के साथ मिलाता है. हम किसी दस्तावेज़ को अटैच करते समय
इवेंट हैंडलर को किसी ऐसे मार्कर पर ले जाता है जो क्लिक करने पर मैप को ज़ूम करता है. हमने यह भी जोड़ा
center
प्रॉपर्टी में बदलाव करने के लिए मैप पर इवेंट हैंडलर और
center_changed
इवेंट:
TypeScript
async function initMap() { // Request needed libraries. const { Map } = await google.maps.importLibrary("maps") as google.maps.MapsLibrary; const { AdvancedMarkerElement } = await google.maps.importLibrary("marker") as google.maps.MarkerLibrary; const myLatlng = { lat: -25.363, lng: 131.044 }; const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 4, center: myLatlng, mapId: "DEMO_MAP_ID", } ); const marker = new google.maps.marker.AdvancedMarkerElement({ position: myLatlng, map, title: "Click to zoom", }); map.addListener("center_changed", () => { // 3 seconds after the center of the map has changed, pan back to the // marker. window.setTimeout(() => { map.panTo(marker.position as google.maps.LatLng); }, 3000); }); marker.addListener("click", () => { map.setZoom(8); map.setCenter(marker.position as google.maps.LatLng); }); } initMap();अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
JavaScript
async function initMap() { // Request needed libraries. const { Map } = await google.maps.importLibrary("maps"); const { AdvancedMarkerElement } = await google.maps.importLibrary("marker"); const myLatlng = { lat: -25.363, lng: 131.044 }; const map = new google.maps.Map(document.getElementById("map"), { zoom: 4, center: myLatlng, mapId: "DEMO_MAP_ID", }); const marker = new google.maps.marker.AdvancedMarkerElement({ position: myLatlng, map, title: "Click to zoom", }); map.addListener("center_changed", () => { // 3 seconds after the center of the map has changed, pan back to the // marker. window.setTimeout(() => { map.panTo(marker.position); }, 3000); }); marker.addListener("click", () => { map.setZoom(8); map.setCenter(marker.position); }); } initMap();अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
सैंपल आज़माएं
सलाह: अगर आपको
ध्यान रखें, खास bounds_changed
इवेंट का इस्तेमाल ज़रूर करें
शामिल नहीं है zoom_changed
और
center_changed
इवेंट. क्योंकि Maps JavaScript API
बाद के इन इवेंट को अलग-अलग फ़ायर करता है, तो हो सकता है कि getBounds()
काम के नतीजे रिपोर्ट न करे
जब तक व्यूपोर्ट आधिकारिक रूप से बदल नहीं जाता. अगर आपको
getBounds()
बाद, इस तरह की घटना होने के बाद,
bounds_changed
इवेंट.
उदाहरण: आकार में बदलाव करना और खींचना इवेंट
जब किसी आकार में बदलाव किया जाता है या उसे खींचा जाता है, तो इवेंट पूरा होने पर ही इवेंट सक्रिय होता है कार्रवाई. इवेंट की सूची और कुछ कोड स्निपेट के लिए, देखें आकार.
व्यू उदाहरण (rectangle-event.html)
यूज़र इंटरफ़ेस (यूआई) इवेंट में ऐक्सेस आर्ग्यूमेंट
Maps JavaScript API के यूज़र इंटरफ़ेस (यूआई) इवेंट आम तौर पर इवेंट तर्क पास करते हैं,
जिसे इवेंट लिसनर ऐक्सेस कर सकता है. यह यूज़र इंटरफ़ेस (यूआई) की स्थिति को ध्यान में रखते हुए,
कोई इवेंट हुआ. उदाहरण के लिए, यूज़र इंटरफ़ेस (यूआई) 'click'
इवेंट आम तौर पर पास होता है
MouseEvent
की जानकारी में latLng
प्रॉपर्टी शामिल है
मैप पर क्लिक की गई जगह की जानकारी दिखाता है. ध्यान दें कि यह व्यवहार यूज़र इंटरफ़ेस (यूआई) के लिए खास होता है
इवेंट; एमवीसी स्थिति में किए गए बदलाव, अपने इवेंट में आर्ग्युमेंट पास नहीं करते.
इवेंट लिसनर में भी इवेंट के आर्ग्युमेंट को इसी तरह ऐक्सेस किया जा सकता है तो किसी ऑब्जेक्ट की प्रॉपर्टी को ऐक्सेस किया जाता है. नीचे दिए गए उदाहरण में एक इवेंट जोड़ा गया है जो मैप को सुनता है, और जब उपयोगकर्ता मैप पर क्लिक करता है तो एक मार्कर बनाता है क्लिक किया गया स्थान.
TypeScript
async function initMap() { // Request needed libraries. const { Map } = await google.maps.importLibrary("maps") as google.maps.MapsLibrary; const { AdvancedMarkerElement, PinElement } = await google.maps.importLibrary("marker") as google.maps.MarkerLibrary; const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 4, center: { lat: -25.363882, lng: 131.044922 }, mapId: "DEMO_MAP_ID", } ); map.addListener("click", (e) => { placeMarkerAndPanTo(e.latLng, map); }); } function placeMarkerAndPanTo(latLng: google.maps.LatLng, map: google.maps.Map) { new google.maps.marker.AdvancedMarkerElement({ position: latLng, map: map, }); map.panTo(latLng); } initMap();अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
JavaScript
async function initMap() { // Request needed libraries. const { Map } = await google.maps.importLibrary("maps"); const { AdvancedMarkerElement, PinElement } = await google.maps.importLibrary( "marker", ); const map = new google.maps.Map(document.getElementById("map"), { zoom: 4, center: { lat: -25.363882, lng: 131.044922 }, mapId: "DEMO_MAP_ID", }); map.addListener("click", (e) => { placeMarkerAndPanTo(e.latLng, map); }); } function placeMarkerAndPanTo(latLng, map) { new google.maps.marker.AdvancedMarkerElement({ position: latLng, map: map, }); map.panTo(latLng); } initMap();अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
सैंपल आज़माएं
इवेंट लिसनर में क्लोज़र का इस्तेमाल करना
किसी इवेंट लिसनर को एक्ज़ीक्यूट करते समय, अक्सर दोनों किसी ऑब्जेक्ट से जुड़ा निजी और स्थायी डेटा. JavaScript यह नहीं करती "निजी" का समर्थन करें इंस्टेंस डेटा, लेकिन यह क्लोज़र, जो इनर फ़ंक्शन को आउटर ऐक्सेस करने की अनुमति देते हैं वैरिएबल. इवेंट लिसनर के लिए, बंद करना फ़ायदेमंद होता है. इससे वैरिएबल को ऐक्सेस नहीं किया जा सकता आम तौर पर, उन ऑब्जेक्ट से जुड़ा होता है जिन पर इवेंट होते हैं.
इस उदाहरण में, इवेंट लिसनर में फ़ंक्शन बंद करने के तरीके का इस्तेमाल किया गया है मार्कर के सेट को कोई सीक्रेट मैसेज असाइन करें. हर मार्कर पर क्लिक करने से इससे आपको गोपनीय मैसेज का कोई हिस्सा दिखेगा, जो मार्कर की बदौलत है.
TypeScript
async function initMap() { // Request needed libraries. const { Map } = await google.maps.importLibrary("maps") as google.maps.MapsLibrary; const { AdvancedMarkerElement } = await google.maps.importLibrary("marker") as google.maps.MarkerLibrary; const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 4, center: { lat: -25.363882, lng: 131.044922 }, mapId: "DEMO_MAP_ID", } ); const bounds: google.maps.LatLngBoundsLiteral = { north: -25.363882, south: -31.203405, east: 131.044922, west: 125.244141, }; // Display the area between the location southWest and northEast. map.fitBounds(bounds); // Add 5 markers to map at random locations. // For each of these markers, give them a title with their index, and when // they are clicked they should open an infowindow with text from a secret // message. const secretMessages = ["This", "is", "the", "secret", "message"]; const lngSpan = bounds.east - bounds.west; const latSpan = bounds.north - bounds.south; for (let i = 0; i < secretMessages.length; ++i) { const marker = new google.maps.marker.AdvancedMarkerElement({ position: { lat: bounds.south + latSpan * Math.random(), lng: bounds.west + lngSpan * Math.random(), }, map: map, }); attachSecretMessage(marker, secretMessages[i]); } } // Attaches an info window to a marker with the provided message. When the // marker is clicked, the info window will open with the secret message. function attachSecretMessage( marker: google.maps.marker.AdvancedMarkerElement, secretMessage: string ) { const infowindow = new google.maps.InfoWindow({ content: secretMessage, }); marker.addListener("click", () => { infowindow.open(marker.map, marker); }); } initMap();अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
JavaScript
async function initMap() { // Request needed libraries. const { Map } = await google.maps.importLibrary("maps"); const { AdvancedMarkerElement } = await google.maps.importLibrary("marker"); const map = new google.maps.Map(document.getElementById("map"), { zoom: 4, center: { lat: -25.363882, lng: 131.044922 }, mapId: "DEMO_MAP_ID", }); const bounds = { north: -25.363882, south: -31.203405, east: 131.044922, west: 125.244141, }; // Display the area between the location southWest and northEast. map.fitBounds(bounds); // Add 5 markers to map at random locations. // For each of these markers, give them a title with their index, and when // they are clicked they should open an infowindow with text from a secret // message. const secretMessages = ["This", "is", "the", "secret", "message"]; const lngSpan = bounds.east - bounds.west; const latSpan = bounds.north - bounds.south; for (let i = 0; i < secretMessages.length; ++i) { const marker = new google.maps.marker.AdvancedMarkerElement({ position: { lat: bounds.south + latSpan * Math.random(), lng: bounds.west + lngSpan * Math.random(), }, map: map, }); attachSecretMessage(marker, secretMessages[i]); } } // Attaches an info window to a marker with the provided message. When the // marker is clicked, the info window will open with the secret message. function attachSecretMessage(marker, secretMessage) { const infowindow = new google.maps.InfoWindow({ content: secretMessage, }); marker.addListener("click", () => { infowindow.open(marker.map, marker); }); } initMap();अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
सैंपल आज़माएं
इवेंट हैंडलर में प्रॉपर्टी सेट करें और पाएं
Maps JavaScript API इवेंट सिस्टम पास में कोई भी एमवीसी स्थिति बदलने से जुड़ा इवेंट नहीं
आर्ग्युमेंट ट्रिगर करें. (उपयोगकर्ता इवेंट यह करते हैं
ऐसे आर्ग्युमेंट पास करें जिनकी जांच की जा सकती है.) अगर आपको किसी प्रॉपर्टी की जांच करनी है, तो
का उपयोग करते समय, आपको
उस ऑब्जेक्ट पर getProperty()
तरीका है. यह
जांच में, हमेशा एमवीसी की मौजूदा स्थिति की जानकारी हासिल की जाएगी
ऑब्जेक्ट है, जो शायद वह स्थिति न हो जब इवेंट पहली बार सक्रिय हुआ था.
ध्यान दें: इसमें साफ़ तौर पर प्रॉपर्टी सेट करना एक ऐसा इवेंट हैंडलर जो उस खास इवेंट की स्थिति में बदलाव होने पर रिस्पॉन्स देता है प्रॉपर्टी के इस्तेमाल से अनचाहा और/या अनचाहा व्यवहार हो सकता है. सेटिंग उदाहरण के लिए, ऐसी प्रॉपर्टी किसी नए इवेंट को ट्रिगर करेगी. उदाहरण के लिए, अगर आप इस इवेंट हैंडलर में एक प्रॉपर्टी सेट करनी होगी, तो आप एक प्रॉपर्टी बना सकते हैं अनंत लूप.
नीचे दिए गए उदाहरण में, हमने जवाब देने के लिए एक इवेंट हैंडलर सेट अप किया है उस लेवल को दिखाने वाली जानकारी विंडो को लाकर, इवेंट को ज़ूम करने का विकल्प होता है.
TypeScript
async function initMap() { // Request needed libraries. const { Map } = await google.maps.importLibrary("maps") as google.maps.MapsLibrary; const originalMapCenter = new google.maps.LatLng(-25.363882, 131.044922); const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 4, center: originalMapCenter, } ); const infowindow = new google.maps.InfoWindow({ content: "Change the zoom level", position: originalMapCenter, }); infowindow.open(map); map.addListener("zoom_changed", () => { infowindow.setContent("Zoom: " + map.getZoom()!); }); } initMap();अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
JavaScript
async function initMap() { // Request needed libraries. const { Map } = await google.maps.importLibrary("maps"); const originalMapCenter = new google.maps.LatLng(-25.363882, 131.044922); const map = new google.maps.Map(document.getElementById("map"), { zoom: 4, center: originalMapCenter, }); const infowindow = new google.maps.InfoWindow({ content: "Change the zoom level", position: originalMapCenter, }); infowindow.open(map); map.addListener("zoom_changed", () => { infowindow.setContent("Zoom: " + map.getZoom()); }); } initMap();अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
सैंपल आज़माएं
डीओएम इवेंट सुनें
Maps JavaScript API इवेंट मॉडल खुद अपना इवेंट बनाता है और उसे मैनेज करता है
कस्टम इवेंट. हालांकि, ब्राउज़र में DOM (डॉक्यूमेंट ऑब्जेक्ट मॉडल)
यह भी क्रैश हो जाता है कि उसके इवेंट के हिसाब से,
ब्राउज़र इवेंट मॉडल का इस्तेमाल किया जा रहा है. अगर आपको इन रणनीतियों को कैप्चर करके जवाब देना है,
इवेंट के लिए, Maps JavaScript API
डीओएम इवेंट को सुनने और उनसे बाइंड करने के लिए, addDomListener()
स्टैटिक तरीका.
इस सुविधा विधि में हस्ताक्षर है, जैसा कि नीचे दिखाया गया है:
addDomListener(instance:Object, eventName:string, handler:Function)
जहां instance
, ब्राउज़र पर काम करने वाला कोई भी DOM एलिमेंट हो सकता है,
शामिल हैं:
- डीओएम के हैरारकी वाले सदस्य, जैसे कि
window
याdocument.body.myform
- नाम वाले एलिमेंट, जैसे कि
document.getElementById("foo")
ध्यान दें कि addDomListener()
, बताए गए इवेंट को पास कर लेता है
ब्राउज़र से लिंक किया जाता है, जो इसे ब्राउज़र के DOM इवेंट मॉडल के अनुसार हैंडल करता है;
हालांकि, करीब-करीब सभी मॉडर्न ब्राउज़र कम से कम DOM लेवल 2 का समर्थन करते हैं. (और ज़्यादा
डीओएम लेवल इवेंट की जानकारी के लिए,
Mozilla DOM लेवल
reference.)
TypeScript
async function initMap() { // Request needed libraries. const { Map } = await google.maps.importLibrary("maps") as google.maps.MapsLibrary; const mapDiv = document.getElementById("map") as HTMLElement; const map = new google.maps.Map(mapDiv, { zoom: 8, center: new google.maps.LatLng(-34.397, 150.644), }); // We add a DOM event here to show an alert if the DIV containing the // map is clicked. google.maps.event.addDomListener(mapDiv, "click", () => { window.alert("Map was clicked!"); }); } initMap();अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
JavaScript
async function initMap() { // Request needed libraries. const { Map } = await google.maps.importLibrary("maps"); const mapDiv = document.getElementById("map"); const map = new google.maps.Map(mapDiv, { zoom: 8, center: new google.maps.LatLng(-34.397, 150.644), }); // We add a DOM event here to show an alert if the DIV containing the // map is clicked. google.maps.event.addDomListener(mapDiv, "click", () => { window.alert("Map was clicked!"); }); } initMap();अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
एचटीएमएल
<html> <head> <title>Listening to DOM Events</title> <link rel="stylesheet" type="text/css" href="./style.css" /> <script type="module" src="./index.js"></script> </head> <body> <div id="map"></div> <!-- prettier-ignore --> <script>(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))}) ({key: "AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg", v: "weekly"});</script> </body> </html>
सैंपल आज़माएं
हालांकि ऊपर दिया गया कोड Maps JavaScript API कोड है, लेकिन
addDomListener()
तरीका, window
ऑब्जेक्ट से बाइंड करता है
ब्राउज़र के बाहर मौजूद ऑब्जेक्ट से संपर्क करने के लिए एपीआई को अनुमति देता है
एपीआई का सामान्य डोमेन.
इवेंट लिसनर हटाएं
किसी इवेंट लिसनर को हटाने के लिए, उसे
वैरिएबल. इसके बाद आप removeListener()
को कॉल कर सकते हैं,
वह वैरिएबल नाम पास करना जिसे लिसनर असाइन किया गया था.
var listener1 = marker.addListener('click', aFunction); google.maps.event.removeListener(listener1);
किसी खास इंस्टेंस से सभी लिसनर को हटाने के लिए,
clearInstanceListeners()
, इंस्टेंस का नाम पास कर रहा है.
var listener1 = marker.addListener('click', aFunction); var listener2 = marker.addListener('mouseover', bFunction); // Remove listener1 and listener2 from marker instance. google.maps.event.clearInstanceListeners(marker);
किसी खास इंस्टेंस के लिए, किसी खास इवेंट टाइप के सभी लिसनर को हटाने के लिए,
clearListeners()
को कॉल करें, ताकि इंस्टेंस का नाम और इवेंट पास किया जा सके
नाम.
marker.addListener('click', aFunction); marker.addListener('click', bFunction); marker.addListener('click', cFunction); // Remove all click listeners from marker instance. google.maps.event.clearListeners(marker, 'click');
ज़्यादा जानकारी के लिए, google.maps.event नेमस्पेस पर सेट है.
प्रमाणीकरण गड़बड़ियों के लिए सुनें
अगर आपको प्रोग्राम के हिसाब से, पुष्टि नहीं होने का पता लगाना है (उदाहरण के लिए
अपने-आप बीकन भेजने के लिए) आप कॉलबैक फ़ंक्शन तैयार कर सकते हैं.
अगर नीचे दिया गया ग्लोबल फ़ंक्शन तय किया गया है, तो उसे तब कॉल किया जाएगा, जब
प्रमाणीकरण विफल रहता है.
function gm_authFailure() { /* Code */ };