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})
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 });
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!