【问题标题】:Return false not working in Opera返回 false 在 Opera 中不起作用
【发布时间】:2012-06-10 10:14:14
【问题描述】:

如果您查看http://www.zimmi.cz/edpp 并单击标记,则会弹出一个带有链接的信息窗口。如果单击该链接,则应打开新窗口。它在 Firefox 和 IE (7) 中运行良好,但在 Opera 中,新窗口和原始窗口都会加载新内容。我如何告诉 Opera 只打开一个新窗口并让原来的窗口保持不变? 信息窗口中链接的 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 的范围:-/

【问题讨论】:

  • 您至少可以发布有关事件处理程序和函数的代码 sn-p 吗?很可能您还需要从事件处理程序中返回。
  • @Wex 是 83%?以前低很多吗?
  • @Jleagle 它要低得多 (17)。
  • popupWin 函数长什么样子?

标签: javascript jquery opera


【解决方案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);
});

更多 information about preventDefault 上 MDN

【讨论】:

  • 此事件处理程序可防止显示信息窗口。问题是我不知道如何将其应用于信息窗口内的链接。
【解决方案2】:

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

查看此链接read this article

如果您希望与所有浏览器完全兼容,您应该阅读更多内容,而不仅仅是编程

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 2018-12-05
    • 1970-01-01
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    相关资源
    最近更新 更多