-2

有一个href如下:

<a class="eLink" href="http:www.abc.com">chk here xyz</a></li>

“eLink”的javascript如下:

    $("a.eLink").click(function link(evt) {
        url = evt.target.href;

        if (url.toString().toLowerCase().indexOf(".gov") <= 0) {

            var tk = "Do you really want to continue?";

            if (confirm(tk)) {
                window.open(url, 'newwin');
            }else{
               window.open(url,'_self'); 
            }
        }
        else
        { window.open(url, 'newwin'); }

        return false;
    });
});

现在我的问题是,当我单击 href 并单击确认按钮中的“取消”时,我的页面转到“abc.com”,但它不应该发生。我的浏览器应该保持不变。我应该在 else 部分使用什么脚本,所以我保持在同一页面。谢谢。

4

3 回答 3

2

把其他的拿出来。

if (confirm(tk)) {
    window.open(url, 'newwin');
  }

旁注,IE8 及更低版本没有实现该indexOf功能,因此您可能希望通过编写自己的实现来修补它。

于 2012-04-19T17:54:02.617 回答
1

return false;(jQuery 样式)应该已经阻止了默认操作

问题是如果单击取消window.open(url,'_self');执行,只需删除确认条件的else部分

检查这个小提琴

于 2012-04-19T17:54:25.253 回答
0

你有:

var tk = "Do you really want to continue?";

            if (confirm(tk)) {
                window.open(url, 'newwin');
            }else{
               window.open(url,'_self'); 
            }

这意味着如果他们点击取消,False将返回,仍然会打开链接。您需要window.open在您的else声明中删除

if (confirm(tk)) {
                    window.open(url, 'newwin');
                }
于 2012-04-19T17:50:35.370 回答