Правильно ли Safari обрабатывает событие вставки?
Я пытаюсь написать код для Safari для обработки события 'paste', но, похоже, он работает неправильно. Согласно ссылке на WebKit DOM,oncut
, onpaste
, а такжеoncopy
все обрабатываются более или менее так, как предлагает API буфера обмена W3C. Тем не менее, это не работает, как я ожидаю. Я вставляю данные изображения, но, насколько я могу судить, проблема, с которой я столкнулся, относится к любому виду пасты. Этотjsfiddle прекрасно работает в Chrome, но не в Safari 6.0.4 на 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);
}
Я попробовал еще раз, используя толькопростой JS, Все еще нет радости
<div id="pastearea" onpaste="plainjsOnPaste()" style="width: 100px; height: 100px; background-color: blue;"/>
function plainjsOnPaste(e) {
console.log("blahblahblah");
console.log(e);
}
Если есть какие-то проблемы с Safari, то, очевидно, я не должен ожидать, что jQuery будет работать. Насколько я могу судить, во второй попытке (простой) я делаю именно то, что предлагает ссылка на WebKit, но она не работает вообще. Это известное ограничение Safari или проблема между стулом и клавиатурой?
ОбновитьПохоже, что Safari не реализует рабочий проект API буфера обмена W3C. Я исследую обходные пути, но если кто-нибудь знает кого-то, я бы хотел услышать это.