2010-03-08 27 views
13

Tôi đã xem một vài trang web ngay bây giờ nếu bạn đánh dấu văn bản của một bài viết, sao chép và sau đó dán vào chúng có thể thêm văn bản vào đó.Chỉnh sửa dữ liệu clipboard khi sao chép/dán từ một trang web

Thử sao chép và dán một phần văn bản từ một bài viết tại http://belfasttelegraph.co.uk/ và bạn sẽ thấy ý tôi - chúng thêm liên kết vào bài viết gốc trong văn bản được dán.

Điều này được thực hiện như thế nào? Tôi giả sử có một số javascript tại nơi làm việc ở đây

+1

Thú vị. Tôi đã đi đến độ dài lớn để tìm ra cách để ngăn chặn * bất kỳ trang web nào, kể từ khi làm chính xác điều này. Sử dụng một cách tiết kiệm. – Ricky

Trả lời

8

Đây là một hiệu quả tốt, bạn sẽ nhìn thấy kịch bản được bắn vào bản sao sử dụng Firebug (Firefox).

Khởi động Firebug và tải trang, chọn rõ ràng (vì trang sử dụng rất nhiều ajax có rất nhanh 100 yêu cầu). Sau đó chọn tab 'Tất cả' và cố gắng sao chép. Bạn sẽ thấy yêu cầu cho hình ảnh pixel 1x1 nhưng nếu bạn nhấn vào nút + để xem chi tiết, bạn sẽ thấy trong tab 'thông số' mà yêu cầu GET này chuyển văn bản yêu cầu của bạn dưới dạng tham số 'nội dung', với một số thông tin xpath sẽ được sử dụng để thao tác DOM clipboard:

start_node_xpath /HTML/BODY[@id='belfast']/DIV[@id='root']/DIV[@id='content']/DIV[@id='mainColumn']/DIV[@id='article']/DIV[5]/P[39]/text() 

end_node_xpath /HTML/BODY[@id='belfast']/DIV[@id='root']/DIV[@id='content']/DIV[@id='mainColumn']/DIV[@id='article']/DIV[5]/P[41]/text() 

Như @Crimson chỉ ra có những phương pháp để thao tác clipboard, like zeroclipboard đó sử dụng flash và hình ảnh.

Tôi cho rằng đó là cách kỹ thuật được thực hiện bằng cách sử dụng hình ảnh nhận được yêu cầu thay đổi bảng tạm.

+0

Tôi tự hỏi nếu tôi chọn một -1 trên đường đi? – amelvin

+1

+1 để được giải thích về cách sử dụng Firebug. –

3

Bạn sẽ nhận thấy rằng điều này chỉ xảy ra khi bạn sử dụng tổ hợp phím [Ctrl + C] và không nếu bạn đánh dấu văn bản và chọn sao chép từ menu chuột phải.

Chúng chỉ đơn giản là bẫy tổ hợp phím [Ctrl + C].

Hơn nữa, để thêm dữ liệu vào clipboard, hãy nhìn vào bài đăng này: How do I copy to the clipboard in JavaScript?

+0

Không đồng ý. Tôi đang sử dụng XP/Firefox 3.5.8 và nếu tôi làm nổi bật, nhấp chuột phải và chọn sao chép nó sẽ gắn liên kết cố định vào văn bản được sao chép. – amelvin

1

Tôi đã nhận thấy gần đây là một luồng "cướp đoạt clipboard" này trên các trang web. thefutoncritic.com, cracked.com ... Nếu bạn sử dụng Adblock chỉ cần đi vào danh sách "mục nhập thủ công" và thêm * post-copypaste.js * vào danh sách đó. Điều này sẽ ngăn các trang web thêm quảng cáo của họ vào khay nhớ tạm của bạn.

0

Một trang web tin tức tôi ghé thăm sử dụng này để thêm "nguồn" vào lựa chọn đã sao chép:

function addLink() { 
    var body_element = document.getElementsByTagName('body')[0]; 
    var selection; 
    selection = window.getSelection(); 
    // change this if you want 
    var pagelink = "<br><br>Fuente: Emol.com - <a href='"+document.location.href+"'>"+document.location.href+"</a><br>"; 
    var copytext = selection + pagelink; 
    var newdiv = document.createElement('div'); 
    newdiv.style.position='absolute'; 
    newdiv.style.left='-99999px'; 
    body_element.appendChild(newdiv); 
    newdiv.innerHTML = copytext; 
    selection.selectAllChildren(newdiv); 
    window.setTimeout(function() { 
     body_element.removeChild(newdiv); 
    },0); 
} 
document.oncopy = addLink; 
Các vấn đề liên quan