2011-08-10 58 views
9

如何在瀏覽器的右鍵菜單中禁用/刪除「在新標籤中打開鏈接」選項? 如果這是不可能的JavaScript等,那麼有沒有辦法來修改當用戶點擊此鏈接時發生的情況,例如,顯示警報或阻止加載標籤。如何在瀏覽器中禁用「在新標籤中打開鏈接」?

+0

通常,您不應該試圖破壞用戶的意圖,即使這不是您正在努力的流程。或者,您可以使href「#」並使用「onclick」處理程序來實際執行頁面轉換,從而消除用戶使用該功能的能力。 – ghayes

+3

爲什麼你想幹涉你的用戶瀏覽器呢?它應該取決於你的鏈接打開的標籤。 – Amy

+1

@Inuyasha如果在新選項卡中打開鏈接,我的應用程序當前會顯示一個錯誤。它旨在將內容加載到同一頁面上的div中。如果情況並非如此,請相信我,我不希望「干涉」。 – grai

回答

3

現在已經解決了主要問題,很容易,因爲它只是通過將href的查詢字符串傳遞給ajax函數。

我可能應該在我的問題中解釋說我想要的只是作爲臨時措施。無論如何感謝所有的評論。

0

我不知道爲什麼會有人降低你的問題,你需要什麼谷歌是如何劫持使用JavaScript的事件。點擊鏈接並停止工作時,您可以很好地顯示警報。 jQuery是一個populat JS工具包,它有一種方法可以用簡單的英語停止元素上的默認事件,使用jQuery可以阻止超鏈接工作並顯示警報。此鏈接http://api.jquery.com/event.preventDefault/可以幫助您進一步。關於禁用右鍵單擊網頁上出現的上下文菜單,是的,這是非常有可能的。我不是JS忍者,所以不能評論,如果你可以從上下文菜單中刪除一個項目但IMO,它不應該是可能的。

+1

這不會工作,當你點擊鼠標中鍵或按住CTRL並點擊鏈接時,如何防止這些情況? – Pars

6

在新選項卡/窗口中打開鏈接的能力是許多瀏覽器的本地功能。如果您不希望允許這種類型的活動,那麼您需要通知瀏覽器您的鏈接不是真正的鏈接。最簡單的方法是從a元素中刪除href屬性。

HTML:

<a href="http://google.com">Can be opened in new tab/window</a> 
<a>Cannot be opened in new tab/window</a> 

現在也有一些其他的東西,瀏覽器可能會被默認爲你做,當它看到一個鏈接。如果您尚未定義a元素的任何樣式,則很可能您的新幻想僞鏈接將不會以鏈接字體顏色,指針和下劃線顯示。你可以繼續,做到這一點很容易。

CSS:

a { 
    color: blue; 
    cursor: pointer; 
    text-decoration: underline; 
} 

有希望地回答瞭如何禁用/刪除選項「在新標籤中打開鏈接」在瀏覽器的右鍵菜單的問題。對於一些額外的功勞,儘管我假設您可能希望鏈接在點擊時仍然像普通鏈接一樣運作。隨意使用一些JavaScript來實現這一點。下面是使用jQuery的例子:

的JavaScript:

$("body").on("click", "a[data-href]", function() { 
    var href = $(this).data("href"); 
    if (href) { 
     location.href = href; 
    } 
}); 

修改後的HTML:

<a href="http://google.com">Can be opened in new tab/window</a> 
<a data-href="http://google.com">Cannot be opened in new tab/window</a> 

修改CSS:

a[href], a[data-href] { 
    color: blue; 
    cursor: pointer; 
    text-decoration: underline; 
} 

希望這有助於!

相關問題