Перетаскивание изображений с другого веб-сайта на мой
Я быстро просмотрел Google и SO и нашел похожие вопросы, но ни один из них не был хорошо сформирован, а большинство из них были старыми и выглядели заброшенными (без ответов и комментариев на некоторое время). Итак, здесь идет...
Я хочу иметь возможность собирать URL-адрес (только URL-адрес) изображения, удаляемого на мой сайт с другого веб-сайта.. (т.е. у меня открываются два хромированных окна. В окне A есть мое приложение. imgur в нем. Я открываю изображение и перетаскиваю его в свое окно и отпускаю. Теперь мне нужно знать URL-адрес изображения, упавшего на моей странице).
Вот код, который я работал с локальными файлами.
$(document).on('drop', function(e) {
var data = e.dataTransfer || e.originalEvent.dataTransfer;
console.log(data); // data.files is empty
e.preventDefault();
return false;
});
Снова я не хочу ничего загружать.. Я не пытаюсь сделать что-то интересное... Мне просто нужно знать, как местоположение изображения удаляется на странице с другого сайта.
Ответы
Ответ 1
Попробуйте следующее: http://jsfiddle.net/2Jet2/70/
$(document).on('dragover', function(e) {
e.preventDefault();
});
$(document).on('drop', function(e) {
e.preventDefault();
e.originalEvent.dataTransfer.items[0].getAsString(function(url){
alert(url);
});
});
Я получаю "http://static3.flattr.net/thing/image/9/4/5/5/0/huge.png?1326712342"
Когда я перетащил это изображение из другого окна браузера.
.getAsString
принимает обратный вызов, который получает URL-адрес в качестве аргумента после его вызова
Не работает на firefox
Ответ 2
Вы можете использовать этот
$(document).bind('drop', function (e) {
var url = $(e.originalEvent.dataTransfer.getData('text/html')).filter('img').attr('src');
if (url) {
jQuery('<img/>', {
src: url,
alt: "resim"
}).appendTo('#yourId');
}
return false;
})
Ответ 3
На основе ответа Юнуса это работает в FF:
e.originalEvent.dataTransfer.getData('text/html').match(/src\s*=\s*"(.+?)"/)[1]