2010-06-21 38 views
16

Tôi muốn tắt nhấp chuột phải trên trang HTML. Tôi có một trang nơi người dùng phải nhập chi tiết. Tôi không muốn người dùng thấy menu được hiển thị bằng cách nhấp chuột phải. Thay vào đó tôi muốn hiển thị một menu tùy chỉnh. Tôi biết có một số plugin có sẵn để làm điều đó. Nhưng yêu cầu của tôi không cần bất kỳ plugin nào.Làm thế nào để vô hiệu hóa chuột phải bấm vào một trang web?

+1

Bảo mật bằng tối tăm? –

+15

Sự cố với menu là gì? Nó thuộc về người dùng nên để nó cho anh ta. * Chỉ cần tưởng tượng, người dùng không hiểu một từ và muốn sử dụng một số dịch vụ dịch mà có thể truy cập vào menu ngữ cảnh. * –

+8

Tại sao bạn muốn làm điều này? Nhiều người dùng cảm thấy khó hiểu nếu trang không hoạt động như tất cả các trang web khác. –

Trả lời

41

Đó là không chuyên nghiệp, dù sao này sẽ làm việc với kích hoạt javascript:

document.oncontextmenu = document.body.oncontextmenu = function() {return false;} 

Bạn cũng có thể muốn hiển thị một thông điệp tới người dùng trước khi trả về false. Tuy nhiên tôi phải nói rằng điều này không nên được thực hiện thường bởi vì nó giới hạn tùy chọn người dùng mà không giải quyết vấn đề (trong thực tế, menu ngữ cảnh có thể được kích hoạt lại một cách dễ dàng.).

bài viết sau tốt hơn giải thích tại sao này không nên được thực hiện và những hành động khác có thể được thực hiện để giải quyết các vấn đề có liên quan phổ biến: http://articles.sitepoint.com/article/dont-disable-right-click

+1

Hơn nữa, đây không phải là tất cả và kết thúc tất cả các giải pháp, họ chỉ có thể vô hiệu hóa js và hey presto. – Kezzer

+0

Tại sao không chỉ 'document.oncontextmenu = function() {return false; } '? –

6

Bạn có thể sử dụng sự kiện oncontextmenu để thực hiện việc này.

Nhưng nếu người dùng tắt javascript thì bạn sẽ không thể xử lý việc này.

window.oncontextmenu = function() { 
    return false; 
} 

sẽ tắt trình đơn nhấp chuột phải.

5

Thứ nhất, nếu bạn đang làm điều này chỉ để ngăn chặn những người xem tại nguồn của trang của bạn - nó sẽ không hoạt động vì chúng luôn có thể sử dụng phím tắt để xem nó.

Thứ hai, bạn sẽ phải sử dụng JavaScript để thực hiện việc này. Nếu người dùng đã tắt JS, bạn không thể ngăn nhấp chuột phải.

Điều đó nói rằng, thêm thẻ này vào thẻ body của bạn để vô hiệu hóa các nhấp chuột phải.

<body oncontextmenu="return false;"> 
6

<body oncontextmenu="return false;"> hoạt động với tôi trong Google Chrome. Không chắc chắn về các trình duyệt khác.

Lưu ý, tất cả những gì ai đó phải làm là tắt JavaScript để xem menu nhấp chuột phải.

1

Xin đừng làm điều đó, nó rất khó chịu.

Trình đơn bên phải có lý do và cần được để ở đó. Nhiều tiện ích mở rộng của trình duyệt thêm các mục nhập vào trình đơn nhấp chuột phải và người dùng sẽ có thể sử dụng nó trong bất kỳ trang nào mà anh truy cập. Ngoài ra, bạn có thể sử dụng tất cả chức năng của menu nhấp chuột phải theo các cách khác (phím tắt, menu trình duyệt, v.v.) để chặn menu nhấp chuột phải có tác dụng duy nhất gây phiền nhiễu cho người dùng.

PS: Nếu thực sự bạn không thể cưỡng lại sự thôi thúc chặn ít nhất là không đặt cửa sổ bật lên có nội dung "không cho phép nhấp chuột phải".

+3

-1: Trong khi điều này làm cho một số điểm tốt, nó không trả lời câu hỏi vì vậy nên có một bình luận. – Quentin

+0

@ Dorav Dorward: Nó thực sự trả lời câu hỏi. Tôi nói rằng mặc dù ông có thể chặn sự xuất hiện của trình đơn nhấp chuột phải không có cách nào để thực sự chặn ** chức năng của nó **, vì chúng có thể truy cập theo những cách khác.Chặn menu nhấp chuột phải là thực hành không tốt, vì vậy tôi đã tìm thấy câu trả lời tốt hơn để giải thích lý do tại sao anh ấy không nên làm như vậy. – nico

3

Có rất nhiều ví dụ của việc này có thể được tìm thấy qua Google

Tuy nhiên, người dùng có thể tắt Javascript để ngăn chặn "tính năng" này rất khó chịu. Tôi nghĩ bạn nên thực sự nghĩ về điều này trước khi thực hiện nó. Nó không thực sự bảo vệ nội dung của bạn (nếu đó là những gì bạn đang cố gắng đạt được).

Có một bài viết here minh họa điều này thật khó chịu và vô nghĩa.

1

Hãy thử điều này: viết dưới mã trên cơ thể & cảm thấy sự kỳ diệu :)

body oncontextmenu="return false" 
0

Bạn có thể sử dụng Javascript để chặn click chuột phải. Here là một tập lệnh để chặn nhấp chuột phải trên trang web.

0

Bạn có thể làm như vậy với Javascript và/hoặc một thuộc tính HTML (mà thực sự là một xử lý sự kiện javascript anyway) như mô tả ở đây: http://www.codeproject.com/KB/aspnet/Disabling_the_right_click.aspx

<script language="javascript"> 
document.onmousedown=disableclick; 
status="Right Click Disabled"; 
Function disableclick(event) 
{ 
    if(event.button==2) 
    { 
    alert(status); 
    return false;  
    } 
} 
</script> 

<body oncontextmenu="return false"> 
... 
</body> 
0

// Disable ngay nhấp vào tập lệnh qua mã tập lệnh java

<script language=JavaScript> 
//Disable right click script 
var message = ""; 
/////////////////////////////////// 
function clickIE() { 
    if (document.all) { 
     (message); 
     return false; 
    } 
} 

function clickNS(e) { 
    if (document.layers || (document.getElementById && !document.all)) { 
     if (e.which == 2 || e.which == 3) { 
      (message); 
      return false; 
     } 
    } 
} 
if (document.layers) { 
    document.captureEvents(Event.MOUSEDOWN); 
    document.onmousedown = clickNS; 
} else { 
    document.onmouseup = clickNS; 
    document.oncontextmenu = clickIE; 
} 

document.oncontextmenu = new Function("return false") 
</script> 

Click here to see semo

1
window.oncontextmenu = function() { 
return false; 
} 

có thể giúp bạn.

Các vấn đề liên quan