Czy Safari obsługuje poprawnie wklejanie zdarzenia?
Próbuję napisać kod dla Safari do obsługi zdarzenia „wklej”, ale wydaje się, że nie działa poprawnie. Zgodnie z referencją WebKit DOM,oncut
, onpaste
, ioncopy
są obsługiwane mniej więcej tak, jak sugeruje API Schowka W3C. Jednak to nie działa tak, jak się spodziewam. Wklejam dane obrazu, ale o ile mogłem powiedzieć, problem, który mam, dotyczy każdego rodzaju pasty. Tojsfiddle działa dobrze w Chrome, ale nie w Safari 6.0.4 w OSX.
$(function () {
console.log("ready");
$("#pastearea").on("paste", function (e) {
e.preventDefault();
console.debug("testing paste in safari");
var blob = e.originalEvent.clipboardData.items[0].getAsFile();
console.debug(blob);
var reader = new FileReader();
reader.onload = readerLoaded;
reader.readAsDataURL(blob);
});
});
function readerLoaded(e) {
$("#dest").attr("src", e.target.result);
}
Próbowałem ponownie używając justzwykły JS. Nadal nie ma radości:
<div id="pastearea" onpaste="plainjsOnPaste()" style="width: 100px; height: 100px; background-color: blue;"/>
function plainjsOnPaste(e) {
console.log("blahblahblah");
console.log(e);
}
Jeśli jest jakiś problem z Safari, to oczywiście nie powinienem oczekiwać, że jQuery zadziała. O ile wiem, w drugiej próbie (zwykłej) robię dokładnie to, co sugeruje odwołanie do WebKit, ale powinienem to zrobić, ale w ogóle nie działa. Czy jest to jakieś znane ograniczenie Safari, czy też problem między krzesłem a klawiaturą?
Aktualizacja: wygląda na to, że Safari nie implementuje roboczej wersji API Schowka W3C. Badam obejścia, ale jeśli ktoś zna to, chciałbym je usłyszeć.