0

我有一个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, 'newwin'); }

        return false;
    });
});

现在,当单击超链接时,我收到消息“您真的要继续吗?”,现在当我单击“是”时,它会打开一个带有目标页面“abc.com”的新浏览器,并且我当前的浏览器也更改为“ abc.com”。我想更改代码,使当前浏览器保持在同一页面中,目标浏览器“abc.com”在新页面中打开,如果单击“否”,浏览器应保持在同一页面中。我尝试在带有确认框的纯 javascript 中使用它们,但问题是无论我必须使用此代码,外部浏览器链接都必须在 javascript 中给出,我想避免这种情况。上面的脚本中是否有一个可以完成我想要的快速更改?

4

3 回答 3

1

使用“_self”来引用当前窗口/选项卡。有关详细信息,请参阅http://www.w3schools.com/jsref/met_win_open.asp 。

$("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'); } // open in same tab/page

    return false;
 });
});


// if you click yes, redirect, if no, then do nothing
if (confirm(tk)) {
   window.open(url, 'newwin');
} else {
   return false; // do nothing
}
于 2012-04-19T17:11:54.820 回答
1

为我工作http://jsfiddle.net/8vKvT/

于 2012-04-19T17:14:47.613 回答
1
$("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;
});
于 2012-04-19T17:14:55.277 回答