Trang web này sẽ có chức năng hạn chế trong khi chúng tôi trải qua bảo trì để cải thiện trải nghiệm của bạn. Nếu một bài viết không giải quyết được vấn đề của bạn và bạn muốn đặt câu hỏi, chúng tôi có cộng đồng hỗ trợ của chúng tôi đang chờ để giúp bạn tại @FirefoxSupport trên Twitter và /r/firefox trên Reddit.

Tìm kiếm hỗ trợ

Tránh các lừa đảo về hỗ trợ. Chúng tôi sẽ không bao giờ yêu cầu bạn gọi hoặc nhắn tin đến số điện thoại hoặc chia sẻ thông tin cá nhân. Vui lòng báo cáo hoạt động đáng ngờ bằng cách sử dụng tùy chọn "Báo cáo lạm dụng".

Tìm hiểu thêm

clipboard.writeText failed only after call the crypto.subtle.digest api

  • 6 trả lời
  • 1 gặp vấn đề này
  • 8 lượt xem
  • Trả lời mới nhất được viết bởi duke1

more options

Test code:

   navigator.clipboard.writeText('test 1').then(function() {
       console.log('Copy to clipboard successed 1');
   }, function() {
       console.log('Copy to clipboard failed 1');
   });
   
   let test = await crypto.subtle.digest('SHA-256', dat);
   
   navigator.clipboard.writeText('test 2').then(function() {
       console.log('Copy to clipboard successed 2');
   }, function() {
       console.log('Copy to clipboard failed 2');
   });

Logs:

Copy to clipboard successed 1 Copy to clipboard failed 2

Test code: navigator.clipboard.writeText('test 1').then(function() { console.log('Copy to clipboard successed 1'); }, function() { console.log('Copy to clipboard failed 1'); }); let test = await crypto.subtle.digest('SHA-256', dat); navigator.clipboard.writeText('test 2').then(function() { console.log('Copy to clipboard successed 2'); }, function() { console.log('Copy to clipboard failed 2'); }); Logs: Copy to clipboard successed 1 Copy to clipboard failed 2

Tất cả các câu trả lời (6)

more options

See: https://developer.mozilla.org/docs/Web/API/Clipboard/writeText

I think the problem is that the second write is not directly linked to the user action that triggered the function.

more options

jscher2000 said

See: https://developer.mozilla.org/docs/Web/API/Clipboard/writeText I think the problem is that the second write is not directly linked to the user action that triggered the function.

The two test writes are in same function, only split by one line code of the "crypto.subtle.digest()".

I hope you can try my code, it's easy to reproduce the issue.

more options

I think calling the asychronous function disconnects the second call from the original user-initiated event.

This old (open) bug may be relevant: https://bugzilla.mozilla.org/show_bug.cgi?id=1185052

more options

Thank you for your reply, but I think they are different issues, I tried call some other async function instead, no problem at all.

more options

Seems to be working for me.

more options

cor-el said

Seems to be working for me.

Please try this one more time: https://jsfiddle.net/1jzdvy23/

Still not work for me, I tried:

Version 68.2.0 on Android Version 69.0.2 on Linux Version 70.0.1 on Linux

I also tried private window, not work.

duke-pc /home/duke # uname -a Linux duke-pc 5.0.9-gentoo #3 SMP Fri Apr 26 19:30:35 HKT 2019 x86_64 Intel(R) Core(TM) M-5Y71 CPU @ 1.20GHz GenuineIntel GNU/Linux

Last installed firefox from package: www-client/firefox-bin-70.0.1