Hai
Saya mencoba kode berikut: div ini "# map-canvas" isi peta google.
$ ('# map-canvas'). html2canvas ({
onrendered: function (canvas) {
var img = canvas.toDataURL ("image / png");
window.open (img);
}
});
}
Menggunakan kode ini saya mendapatkan peta kosong.
Silakan cari keluaran peta Google.
Beri tahu saya cara mengatasi masalah ini.
Anda tidak dapat merender gambar (dalam hal ini ubin peta google) yang berada di bawah asal yang berbeda kecuali disajikan dengan header cors . Salah satu cara untuk mengatasinya adalah dengan menggunakan proxy untuk gambar.
Saya telah mencoba dengan server proxy php tetapi menghadapi kesalahan: "Tidak tertangkap
SecurityError: Gagal mengeksekusi 'toDataURL' pada 'HTMLCanvasElement':
Kanvas tercemar tidak boleh diekspor. "
Saya telah mencoba server proxy ini:
https://github.com/brcontainer/html2canvas-php-proxy ,
Dengan server proxy di atas saya telah menggunakan arah peta Google:
https://developers.google.com/maps/documentation/javascript/examples/directions-simple
Pada hari Sabtu, 13 Desember 2014 pukul 23:11, Niklas von Hertzen <
[email protected]> menulis:
Anda tidak dapat membuat gambar (ubin peta google dalam hal ini) yang berada di bawah
berbeda asal kecuali mereka disajikan dengan cors header
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS.
Salah satu cara untuk mengatasinya adalah dengan menggunakan proxy untuk gambar.-
Balas email ini secara langsung atau lihat di GitHub
https://github.com/niklasvh/html2canvas/issues/485#issuecomment -66884354
.
_HARDIK SHAH_
Saya menghadapi masalah yang sama. Apakah Anda menemukan solusi untuk ini? Saya ingin mendapatkan tangkapan layar untuk peta google menggunakan html2canvas. Hargai balasan Anda.
Menabrak. Ada Pembaruan?
Meneruskan useCORS: true
dalam opsi memperbaiki masalah untuk saya. Juga, allowTaint: false
. Ini akan membantu jika Anda menjalankan fungsi setelah semua ubin terlihat, Anda dapat mendengarkan tilesloaded
dan mengeksekusi html2canvas
setelah itu terjadi.
Saya menghadapi masalah yang sama. Saya mencoba menggunakan useCORS: true dan allowTaint: false di Opsi Peta tetapi itu tidak membantu. Saya mencoba untuk mendapatkan tangkapan layar hanya setelah halaman dimuat. Apakah saya melewatkan sesuatu?
Saya mendapatkan masalah juga saat mengambil tangkapan layar dari Google Maps, saya mendapatkan kesalahan ini:
ERROR Error: Uncaught (in promise): InvalidStateError: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The image argument is a canvas element with a width or height of 0.
Error: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The image argument is a canvas element with a width or height of 0.
at CanvasRenderer.<anonymous> (html2canvas.js:6289)
at step (html2canvas.js:83)
at Object.next (html2canvas.js:64)
at fulfilled (html2canvas.js:54)
at ZoneDelegate.invoke (zone-evergreen.js:365)
at Object.onInvoke (core.js:39698)
at ZoneDelegate.invoke (zone-evergreen.js:364)
at Zone.run (zone-evergreen.js:124)
at zone-evergreen.js:851
at ZoneDelegate.invokeTask (zone-evergreen.js:400)
at resolvePromise (zone-evergreen.js:793)
at resolvePromise (zone-evergreen.js:752)
at zone-evergreen.js:854
at ZoneDelegate.invokeTask (zone-evergreen.js:400)
at Object.onInvokeTask (core.js:39679)
at ZoneDelegate.invokeTask (zone-evergreen.js:399)
at Zone.runTask (zone-evergreen.js:168)
at drainMicroTaskQueue (zone-evergreen.js:570)
at invokeTask (zone-evergreen.js:485)
at ZoneTask.invoke (zone-evergreen.js:470)
Tolong, ini sangat penting.
Komentar yang paling membantu
Meneruskan
useCORS: true
dalam opsi memperbaiki masalah untuk saya. Juga,allowTaint: false
. Ini akan membantu jika Anda menjalankan fungsi setelah semua ubin terlihat, Anda dapat mendengarkantilesloaded
dan mengeksekusihtml2canvas
setelah itu terjadi.