href和确认按钮
有HREF如下:href和确认按钮
<a class="eLink" href="http:www.abc.com">chk here xyz</a></li>
和JavaScript “ELINK” 如下:
$("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部分使用什么脚本,所以我仍然是同一页。谢谢。
删除window.open
就采取别的出路。
if (confirm(tk)) {
window.open(url, 'newwin');
}
旁注,IE8和更低没有实现indexOf
功能,因此您可能需要通过编写自己的实现来修补它。
@javaiText,你可以发布一个jsFiddle,其中这不起作用?我复制了IC的功能,它似乎工作正常:http://jsfiddle.net/WJa2D/ – 2012-04-19 18:18:26
@javaiText:检查您的控制台是否有错误。我猜你会得到一个错误,而JS根本就没有工作。 – 2012-04-19 18:19:30
您有:
var tk = "Do you really want to continue?";
if (confirm(tk)) {
window.open(url, 'newwin');
}else{
window.open(url,'_self');
}
这意味着,如果他们点击取消,False
将被退回,这将仍然打开链接。您需要在您的else
声明
if (confirm(tk)) {
window.open(url, 'newwin');
}
为什么不只是'this.href'? – ThiefMaster 2012-04-19 17:52:56
的默认操作应该已return false;
(jQuery的风格)防止
的问题是,如果你点击取消window.open(url,'_self');
执行,只是删除的确认条件的其他部分
检查这个fiddle
删除其他部分没有帮助 – JNPW 2012-04-19 18:02:01
-1'返回false;'不像你描述的那样工作,但'evt.preventDefault();' – iambriansreed 2012-04-19 18:06:47
[javaiText](http://stackoverflow.com/users/1071967/javaitext)检查根据jQuery文档,这个[fiddle](http://jsfiddle.net/bRQzy/) – 2012-04-19 18:08:22
我缩进了您的HTML和JS代码,以便它以适当的格式显示出来。为了将来的参考,这是一个简单的缩进4空格的代码,或突出显示它,然后单击**'{}'**按钮。 – 2012-04-19 17:50:02
我看到你已经添加了jQuery标签。也许你应该考虑利用jQuery UI对话框而不是icky标准确认框? – 2012-04-19 17:52:17
林不知道你的意思是“保持不变”,是你不想离开页面,或者你只是想正常的链接工作? – voigtan 2012-04-19 17:52:24