не отвечающее событие onclick в OpenLayer.Popup.FramedCloud - PullRequest
3 голосов
/ 02 февраля 2011

Я использую OpenLayer.Popup.FramedCloud из OpenLayer (JavaScript Mapping Library). во всплывающем конструкторе есть параметр с именем contentHTML. Я положил туда кнопку HTML с событием onlick:

contentHTML = "<button type='button' onclick='alert()'>Hello</button>";

по какой-то причине кнопка не реагирует на щелчок. Зачем? Есть ли решение для этого?

Может быть, это потому, что веб-страница загружена в Winform WebBrowser? Я заметил, что когда я загружаю страницу с обычным браузером (хром) все работает но не в Winform WebBrowser.

полный всплывающий объект:

        var lonlat = new OpenLayers.LonLat(lon, lat);
        var size = new OpenLayers.Size(300,200)
        var htmlString = "<button type='button' onclick='alert()'>Hello</button>";
    popup = new OpenLayers.Popup.FramedCloud("popup", 
                                              lonlat, 
                                              size, 
                                              htmlString,                 
                                              anchor=null,   
                                              closeButtonX =false);         
        popup.id = callId;
        g_waze_map.map.addPopup(popup);

Большое спасибо.

1 Ответ

3 голосов
/ 05 февраля 2011

Ну, я разрабатываю и использую OpenLayers.Popup.FramedCloud и прекрасно работает (даже с вашим контентом HTML).Вот мой код:

// i.e. x = 100, y = 300;

var popup = new OpenLayers.Popup.FramedCloud(
    "getfeature",
    map.getLonLatFromPixel(new OpenLayers.Pixel(x,y)),
    new OpenLayers.Size(300,200),
    "<button type='button' onclick='alert()'>Hello</button>",
    null,
    true
);
popup.autoSize = false;
map.addPopup(popup);

Всплывающее окно автоматически открывается и показывает мне кнопку.Когда я нажимаю на него, появляется предупреждение с текстом «undefined».

...