2008-11-25 39 views
5

Tôi đang cố gắng viết một tập lệnh JavaScript để thêm vào dầu mỡ để thêm nút sau phần tử. Nút onClick cho nút này sẽ sao chép văn bản phần tử cha mẹ vào bàn phím. Tôi đã thấy nhiều ví dụ sao chép văn bản đã chọn vào khay nhớ tạm thời như sau:Nút Greasemonkey JavaScript Sao chép vào Clipboard

<SCRIPT LANGUAGE="JavaScript"> 
    <!-- Begin 
    function copyit(theField) { 
    var selectedText = document.selection; 
    if (selectedText.type == 'Text') { 
    var newRange = selectedText.createRange(); 
    theField.focus(); 
    theField.value = newRange.text; 
    } else { 
    alert('Alert: Select The text in the textarea then click on this button'); 
    } 
    } 
    // End --> 
    </script> 
    <input onclick="copyit(this.form.text_select)" type="button" value="Click Here to Copy the Highlighted Text" name="copy_button"> 

Tìm thấy here.

Tôi cũng thấy rằng bạn có thể chọn văn bản trong các yếu tố đầu vào. Tôi đã thử kết hợp cả hai kỹ thuật, cũng như nhiều người khác mà không có giải pháp khả thi nào. Tôi thậm chí không chắc chắn lý do tại sao mã trên bản sao vào clipboard. Có ai có giải pháp cho điều này không?

+0

Cũng lưu ý: https://developer.mozilla.org/en/Using_the_Clipboard – javamonkey79

Trả lời

5

Nếu bạn dành thời gian để đọc toàn bộ bài viết, tác giả tuyên bố điều này không hiệu quả đối với Firefox ...
Thực ra, tôi nghĩ rằng nó thậm chí không hoạt động cho IE, vì nó không liên quan gì đến clipboard!

Có một kỹ thuật sử dụng Flash, vì theo mặc định, Firefox ngăn chặn truy cập clipboard vì lý do bảo mật.
Nếu không, cách cổ điển để làm bản sao là:

var tc = textToCopy.replace(/\n\n/g, '\n'); 
if (window.clipboardData) // IE 
{ 
    window.clipboardData.setData("Text", tc); 
} 
else 
{ 
    unsafeWindow.netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
    const clipboardHelper = Components.classes 
     ["@mozilla.org/widget/clipboardhelper;1"]. 
     getService(Components.interfaces.nsIClipboardHelper); 
    clipboardHelper.copyString(tc); 
} 

sau khi kích hoạt bản sao (đối với một trang web nhất định).

+5

Tôi đã dành thời gian để đọc toàn bộ bài viết - Tôi chỉ bỏ lỡ "ghi chú"; không có lý do gì để thử nghiệm, tất cả chúng ta đều phạm sai lầm. Tuy nhiên, giải pháp của bạn là cách chính xác, cảm ơn. – javamonkey79

1

Bạn có chắc chắn ví dụ của mình hoạt động không? Nó không có trong trình duyệt của tôi. Nhưng hãy xem trang sau: http://www.jeffothy.com/weblog/clipboard-copy/

+0

Nó hoạt động trong FF 3.0.4, nhưng bạn phải chọn văn bản để làm cho nút sao chép hoạt động. Tôi đã thấy bài đăng trên blog đó và nó dựa vào việc sử dụng flash để sao chép, điều này sẽ không hoạt động đối với những gì tôi đang cố gắng thực hiện. Cảm ơn. :) – javamonkey79

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