2015-09-30 17 views
7

Nếu mức bảo mật được đặt thành ít nhất 'Medium' trong IE (được kiểm tra trong Edge & 11) khi bạn thực thi Lệnh execCommand ('copy'), trình duyệt sẽ nhắc bạn, hỏi xem bạn có cho phép trang thao tác clipboard của bạn hay không.execCommand ('copy') âm thầm không thành công trong IE khi người dùng trả lời lời nhắc với 'Don't allow'

Vấn đề của tôi là, nếu bạn nhấp vào 'Không cho phép', execCommand ('copy') vẫn trả lại true. Ngoài ra, không có lỗi nào được ném.

Tôi có thể nắm bắt và xử lý phản hồi của người dùng này bằng cách nào?

+0

Đây là một lỗi thực sự lạ - điều này là, nếu bạn làm mới trang, nó sẽ trả về false khi bạn không cho phép nữa. –

Trả lời

0

Đây là một câu hỏi cũ hơn, nhưng tôi sẽ kêu vang vì tôi mới tự mình gặp vấn đề này.

Điều tôi đã làm là sử dụng thực tế là IE không hỗ trợ phương thức document.execCommand('paste'). Điều đó nói rằng, bạn có thể dán tài liệu được sao chép đó vào một mục nhập bị ẩn và kiểm tra nó dựa vào nội dung cần được sao chép.

Nếu người dùng đã cho phép Clipboard được thao tác, nội dung được dán và nội dung được sao chép sẽ giống nhau. Nếu không, họ sẽ không. Một cái gì đó như thế này:

var copySuccess, 
    canPaste; 

inputElementToCopy.select(); 
copySuccess = document.execCommand('copy'); 

inputElementToPaste.select(); 
canPaste = document.execCommand('paste'); 

if (canPaste) { 
    copySuccess = inputElementToPaste.value === inputElementToCopy.value; 

    // Since IE supports paste, 
    // if user allowed clipboard: copySuccess === true 
    // else: copySuccess === false 
} 
Các vấn đề liên quan