Bagaimana untuk Mencipta Acara Papan Kekunci dengan Amanah dalam Safari menggunakan JavaScript?

Mary-Kate Olsen
Lepaskan: 2024-11-13 08:37:02
asal
841 orang telah melayarinya

How to Reliably Create Keyboard Events in Safari using JavaScript?

Mencipta Acara Papan Kekunci dalam Safari Menggunakan JavaScript

Mensimulasikan acara papan kekunci dalam Safari menggunakan JavaScript boleh terbukti mencabar, seperti yang ditunjukkan oleh percubaan anda untuk menggunakan dokumen .createEvent. Isu ini berpunca daripada gelagat tidak konsisten sifat keyCode, yang dimulakan kepada 0 walaupun anda berusaha untuk menetapkannya kepada 115.

Untuk menangani perkara ini, kami mengesyorkan agar anda menggunakan polyfill Acara Papan Kekunci DOM Tahap 3, yang meningkatkan JavaScript model acara untuk menyokong penyemak imbas moden dan menyediakan keserasian ke belakang untuk sifat warisan.

Dengan polyfill ini, anda boleh membuat acara papan kekunci seperti jadi:

element.addEventListener("keydown", function(e){ console.log(e.key, e.char, e.keyCode) })

var e = new KeyboardEvent("keydown", {bubbles : true, cancelable : true, key : "Q", char : "Q", shiftKey : true});
element.dispatchEvent(e);

//If you need legacy property "keyCode"
// Note: In some browsers you can't overwrite "keyCode" property. (At least in Safari)
delete e.keyCode;
Object.defineProperty(e, "keyCode", {"value" : 666})
Salin selepas log masuk

Polyfill menyokong sifat warisan seperti KeyCode, charCode dan yang, membolehkan anda menentukan sifat ini secara langsung:

var e = new KeyboardEvent("keydown", {
    bubbles : true,
    cancelable : true,
    char : "Q",
    key : "q",
    shiftKey : true,
    keyCode : 81
});
Salin selepas log masuk

Selain itu, anda boleh mencari penyemak imbas silang versi initKeyboardEvent dalam intipati berasingan.

Dengan menggunakan teknik ini, anda boleh mencipta dengan pasti dan menghantar acara papan kekunci dalam Safari, memastikan gelagat yang konsisten merentas penyemak imbas yang berbeza.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Acara Papan Kekunci dengan Amanah dalam Safari menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan