返回false不能在Opera中工作

时间:2012-06-10 10:14:14

标签: javascript jquery opera

如果您查看http://www.zimmi.cz/edpp并单击标记,则会弹出一个带有链接的信息窗口。如果单击该链接,则应打开新窗口。它在Firefox和IE(7)中运行良好,但在Opera中,新窗口和原始窗口都会加载新内容。我如何告诉Opera只打开一个新窗口并让原始窗口保持不变? infowindow中链接的onclick函数返回false,但Opera(11.64)似乎忽略了它。 谢谢你的帮助。

代码如下:

google.maps.event.addListener(marker,"click",function(ev) {
                        //var content = bod.nazev;
                        var content = "<a href='http://www.edpp.cz/zarizeni/velke-mezirici-oslava-' onclick='return !popUpWin(this, null, 1024, 742, true);'>Aktuální stav hladiny</a>";
                        infowindow.setContent(content);

                        infowindow.setMap(null);
                        infowindow.open(map,marker);
                        getCoords(ev.latLng);
                    });

PopupWin打开新窗口并同时返回false以防止浏览器加载链接。我认为这个函数没有问题,我想我只是没有得到正确的范围来返回false: - /

2 个答案:

答案 0 :(得分:1)

如果您不想要事件的默认行为,则应通过在事件处理程序中调用ev.preventDefault();来阻止默认行为,如下所示:

google.maps.event.addListener(marker,"click",function(ev) {
    ev.preventDefault();
    //var content = bod.nazev;
    var content = "<a href='http://www.edpp.cz/zarizeni/velke-mezirici-oslava-' onclick='return !popUpWin(this, null, 1024, 742, true);'>Aktuální stav hladiny</a>";
    infowindow.setContent(content);

    infowindow.setMap(null);
    infowindow.open(map,marker);
    getCoords(ev.latLng);
});

MDN上的更多information about preventDefault

答案 1 :(得分:0)

你应该检查window.open和其他弹出窗口属性兼容性

点击此链接read this article

如果您希望与所有浏览器完全兼容,那么您应该阅读的不仅仅是编程