2012-04-19 52 views
-2

有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

回答

2

刪除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

0

您有:

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

1

的默認操作應該已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://stackoverflow.com/users/1071967/javaitext)檢查根據jQuery文檔,這個[fiddle](http://jsfiddle.net/bRQzy/) – 2012-04-19 18:08:22