2010-06-20 36 views
5

Như bạn đã biết, nhấp đúp vào một từ trong trình duyệt chọn nó, ba lần nhấp chọn toàn bộ đoạn văn.Câu hỏi về khả năng sử dụng HTML - (nhấp đúp) để chọn văn bản

Tôi đang tinh chỉnh một wiki, nơi chữ ký cho người dùng vô danh được tạo ra tự động và họ trông giống như:

--- // <ip.ad.dr.ess> //

Các " --- "tạo ra một —, // là cho văn bản in nghiêng và tạo ra <em> </em >.

Đây là cách hoạt động ngay bây giờ, khi tôi đã chỉnh sửa. Bây giờ tôi đang tự hỏi về khả năng sử dụng.

Câu hỏi của tôi là: cách tạo đánh dấu sao cho khi nhấp đúp vào địa chỉ ip, toàn bộ địa chỉ và chỉ địa chỉ sẽ được chọn?

Ngôn ngữ đánh dấu không quan trọng, bạn có thể cung cấp giải pháp bằng HTML, nhưng một giải pháp cụ thể cho wiki (dokuwiki) là thích hợp hơn.

Cảm ơn

+0

Điều này chắc chắn có thể giải quyết được, nhưng giải pháp có thể phức tạp. Cái này để làm gì? Nó sẽ không dễ dàng hơn để thay đổi Wiki vì vậy nó sẽ không tự động thêm nội dung? –

+0

Tôi là người chỉnh sửa nó để thêm nội dung đó. Nó hoạt động, nhưng bây giờ tôi tự hỏi về khả năng truy cập – Flavius

+0

Điều này là gì? Bạn có ý nghĩa gì bởi khả năng truy cập? –

Trả lời

5

Nhờ tất cả mọi người, nhưng tôi đã cố gắng làm điều đó bằng cách sử dụng trường văn bản chỉ đọc mà không có đường viền và màu nền của trang web.

Nhấp đúp hoạt động như mong đợi, mà không dựa vào tập lệnh phía máy khách.

2

Bạn không thể làm điều đó bằng HTML. Có thể với Javascript. Về cơ bản, bạn chỉ phát hiện các nhấp chuột đôi trong một khu vực nhất định và sau đó chọn văn bản thích hợp.

EDIT:

Dưới đây là làm thế nào để làm điều đó trong trình duyệt tuân thủ W3C (ví dụ như Firefox, nó có lẽ sẽ không làm việc trong IE, mà không phải là một trình duyệt tương thích W3C và sử dụng mô hình lựa chọn văn bản khác nhau):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html> 
    <head> 
     <script type="text/javascript"> 
      function select(elem) { 
       var sel = window.getSelection(); 
       var range = sel.getRangeAt(0); 
       range.selectNode(elem); 
       sel.addRange(range); 
      }    
     </script> 
    </head> 
    <body> 
     <p>a simple paragraph, this is 
      <span onclick="select(this);">clickable area</span> 
      when this 
      <span ondblclick="select(this);">span tag is double-clicked</span> 
      then they will be selected 
     </p> 
    </body> 
</html> 
+0

Trong chrome mới nhất, những gì tôi nhận được như tham số đầu tiên của hàm là sự kiện, vì vậy hãy thay thế tham số bằng 'e' và' elem' bằng 'e.target' và nó hoạt động tốt. – haridsv

+0

Theo tài liệu 'Sự kiện', tham số đầu tiên thực tế là đối tượng sự kiện, không phải là phần tử. Xem https://developer.mozilla.org/en/docs/Web/API/Event. Chỉnh sửa: Chỉ cần nhận thấy rằng bạn đang chuyển một cách rõ ràng 'this' làm tham số đầu tiên. – haridsv

+0

@haridsv: đó là chính xác nếu bạn đang gắn trình xử lý sự kiện với addEventListener(). Khi sự kiện được gắn liền với thuộc tính @onclick như ở đây, các tham số được xác định bởi bất cứ điều gì bạn truyền cho trình xử lý, trong trường hợp này là 'this', là phần tử. Ngày nay, có thể thực hành tốt hơn để đính kèm kín đáo với addEventListener() hoặc với jquery hơn là gắn vào thuộc tính onclick. –

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