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部分使用什么脚本,所以我仍然是同一页。谢谢。

+0

我缩进了您的HTML和JS代码,以便它以适当的格式显示出来。为了将来的参考,这是一个简单的缩进4空格的代码,或突出显示它,然后单击**'{}'**按钮。 – 2012-04-19 17:50:02

+0

我看到你已经添加了jQuery标签。也许你应该考虑利用jQuery UI对话框而不是icky标准确认框? – 2012-04-19 17:52:17

+0

林不知道你的意思是“保持不变”,是你不想离开页面,或者你只是想正常的链接工作? – voigtan 2012-04-19 17:52:24

删除window.open就采取别的出路。

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

旁注,IE8和更低没有实现indexOf功能,因此您可能需要通过编写自己的实现来修补它。

+0

nope没有帮助。我认为 shdnt指向abc.com ..不知道如何继续。 – JNPW 2012-04-19 18:02:42

+0

@javaiText,你可以发布一个jsFiddle,其中这不起作用?我复制了IC的功能,它似乎工作正常:http://jsfiddle.net/WJa2D/ – 2012-04-19 18:18:26

+1

@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'); 
       } 
+0

为什么不只是'this.href'? – ThiefMaster 2012-04-19 17:52:56

的默认操作应该已return false;(jQuery的风格)防止

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

检查这个fiddle

+0

删除其他部分没有帮助 – JNPW 2012-04-19 18:02:01

+0

-1'返回false;'不像你描述的那样工作,但'evt.preventDefault();' – iambriansreed 2012-04-19 18:06:47

+0

[javaiText](http://*.com/users/1071967/javaitext)检查根据jQuery文档,这个[fiddle](http://jsfiddle.net/bRQzy/) – 2012-04-19 18:08:22