Bing-Mappe Fokus

23. Oktober 2017 11:28

Hallo,

wir setzen CRM2015 ein. Dabei hat die Bing-Karte, die bei Kontakten und Konten eingeblendet wird, eine recht nervige Eigenschaft. Sobald am Mausrädchen gescrollt wird und der Mauszeiger zufällig auf die Bing-Mappe schwebt, wird das Formular nicht mehr gescrollt und die Bing-Mappe wird vergrößert bzw. verkleinert. Man muß den Mauszeiger also wieder an einer Stelle außerhalb der Bing-Mappe bewegen, damit das Scrolling wieder funktioniert.
Gibt es vielleicht einen Javascript-Befehl, um das Mouseover-Ereignis der Bing-Mappe auszuschalten?

Viele Grüße,
NOP

Re: Bing-Mappe Fokus

25. Oktober 2017 11:50

https://msdn.microsoft.com/library/mt712646.aspx

disableScrollWheelZoom boolean Scrolling the mouse wheel over the map will zoom it in or out, but will not scroll the page. Setting this property to true disables the zooming of the map and instead reverts back to scrolling the page instea. Default: false

oder per javascript wenn eure Version das nicht unterstützt:
Microsoft.Maps.Events.addHandler(map, 'mousewheel', function(e) {
e.handled = true;
return true;
});

Re: Bing-Mappe Fokus

6. November 2017 15:02

Hallo Roxxinger,

danke für Deinen Vorschlag, aber irgendwie funktioniert es nicht bei mir. So habe ich es implementiert:

setTimeout(function() {
var bing_maps = document.getElementsByClassName("MicrosoftMap");
Microsoft.Maps.Events.addHandler(bing_maps[0], 'mousewheel', function(e) {
e.handled = true;
return true;
});
}, 5000);

Das Timeout war nötig, denn während des FormLoad Events ist die Bingmappe noch nicht da, also kann ich nicht darauf zugreifen und Events setzen.
Das Mousewheel Event wird trotzdem in der Mappe ausgeführt, es wird also gezoomt, d.h. das Event ist nicht außer Kraft gesetzt worden. Setze ich ein alert("xxx") in das Ereignis rein, wird kein Alert angezeigt, es passiert rein gar nichts. Was mache ich falsch?

Was bei mir allerdings funktioniert, ist dieser Code, der ins Init() reingesteckt wird:

//Disable all events in Bing Map
setTimeout(function() {
var bing_maps = document.getElementsByClassName("MicrosoftMap");
for (var i = 0; i < bing_maps.length; i++) {
var element = bing_maps[i];
$(element).css("pointer-events", "none");
}
}, 5000);

Allerdings werden alle Ereignisse der Bingmappe gelöscht, was mir auch nicht so recht ist. :-(

CU :) NOP

Re: Bing-Mappe Fokus

13. September 2020 00:48

danke für Deinen Vorschlag, aber irgendwie funktioniert es nicht bei mir. So habe ich es implementiert:
setTimeout(function() {
var bing_maps = document.getElementsByClassName("MicrosoftMap");
Microsoft.Maps.Events.addHandler(bing_maps[0], 'mousewheel', function(e) {
e.handled = true;
return true;
});
}, 5000);
Das Timeout war nötig, denn während des FormLoad Events ist die Bingmappe noch nicht da, also kann ich nicht darauf zugreifen und Events setzen.