"Laporkan Bug" atau "Alat Umpan Balik" Google memungkinkan Anda memilih area jendela browser Anda untuk membuat tangkapan layar yang dikirimkan bersama umpan balik Anda tentang bug.
Cuplikan layar oleh Jason Small, diposting dalam pertanyaan rangkap .
Bagaimana mereka melakukan ini? API umpan balik Google JavaScript dimuat dari sini dan ikhtisar mereka tentang modul umpan balik akan menunjukkan kemampuan tangkapan layar.
javascript
html
canvas
screenshot
joelvh
sumber
sumber
Jawaban:
JavaScript dapat membaca DOM dan menyajikan representasi yang cukup akurat dari penggunaan itu
canvas
. Saya telah mengerjakan skrip yang mengubah HTML menjadi gambar kanvas. Memutuskan hari ini untuk mengimplementasikannya dalam mengirimkan umpan balik seperti yang Anda jelaskan.Skrip memungkinkan Anda untuk membuat formulir umpan balik yang mencakup tangkapan layar, dibuat di browser klien, bersama dengan formulir. Tangkapan layar didasarkan pada DOM dan karena itu mungkin tidak 100% akurat untuk representasi nyata karena tidak membuat tangkapan layar yang sebenarnya, tetapi membuat tangkapan layar berdasarkan informasi yang tersedia di halaman.
Itu tidak memerlukan rendering apa pun dari server , karena keseluruhan gambar dibuat di browser klien. Skrip HTML2Canvas sendiri masih dalam kondisi sangat eksperimental, karena tidak menguraikan hampir semua atribut CSS3 yang saya inginkan, juga tidak memiliki dukungan untuk memuat gambar CORS bahkan jika proxy tersedia.
Kompatibilitas browser masih sangat terbatas (bukan karena lebih banyak tidak dapat didukung, hanya saja belum punya waktu untuk membuatnya lebih didukung browser lintas).
Untuk informasi lebih lanjut, lihat contoh di sini:
http://hertzen.com/experiments/jsfeedback/
sunting Skrip html2canvas sekarang tersedia secara terpisah di sini dan beberapa contoh di sini .
sunting 2 Konfirmasi lain bahwa Google menggunakan metode yang sangat mirip (pada kenyataannya, berdasarkan pada dokumentasi, satu-satunya perbedaan utama adalah metode traffing / gambar async mereka) dapat ditemukan dalam presentasi ini oleh Elliott Sprehn dari tim Google Umpan Balik: http: //www.elliottsprehn.com/preso/fluentconf/
sumber
Aplikasi web Anda sekarang dapat mengambil tangkapan layar 'asli' dari seluruh desktop klien menggunakan
getUserMedia()
:Lihat contoh ini:
https://www.webrtc-experiment.com/Pluginfree-Screen-Sharing/
Klien harus menggunakan chrome (untuk saat ini) dan harus mengaktifkan dukungan tangkapan layar di bawah chrome: // flags.
sumber
Navigator.getUserMedia()
sudah usang, tetapi tepat di bawahnya tertulis "... Silakan gunakan navigator yang lebih baru.mediaDevices.getUserMedia () ", yaitu baru saja diganti dengan API yang lebih baru.Seperti yang disebutkan Niklas, Anda dapat menggunakan pustaka html2canvas untuk mengambil tangkapan layar menggunakan JS di peramban. Saya akan memperluas jawabannya pada poin ini dengan memberikan contoh pengambilan tangkapan layar menggunakan perpustakaan ini:
Tampilkan cuplikan kode
Dalam
report()
fungsi dalamonrendered
setelah mendapatkan citra sebagai data URI Anda dapat menunjukkan kepada pengguna dan memungkinkan dia untuk menarik "bug wilayah" oleh mouse dan kemudian mengirim screenshot dan wilayah koordinat ke server.Dalam contoh
async/await
ini dibuat versi: denganmakeScreenshot()
fungsi yang bagus .MEMPERBARUI
Contoh sederhana yang memungkinkan Anda mengambil tangkapan layar, memilih wilayah, menjelaskan bug, dan mengirim permintaan POST (di sini jsfiddle ) (fungsi utamanya adalah
report()
).Tampilkan cuplikan kode
sumber
Dapatkan tangkapan layar sebagai Canvas atau Jpeg Blob / ArrayBuffer menggunakan getDisplayMedia API:
DEMO:
sumber
Inilah contohnya menggunakan: getDisplayMedia
Juga patut dicoba adalah dokumentasi Screen Capture API .
sumber