Примечание: JavaScript не может получить доступ к буферу обмена. Любой плагин, который делает это, обычно использует Flash в фоновом режиме.
Чтобы исправить событие копирования, после добавления http://
к входу необходимо запустить событие select
(не событие change
). Когда значение изменяется, текст больше не выделяется, поэтому вам нужно выбрать новый текст после его редактирования.
Чтобы удалить http://
из поля ввода, вы можете добавить setTimeout
в конец события для сброса значения.
Кроме того, вы должны установить $.fn.changevalue
вне функции обратного вызова, его не нужно переустанавливать при каждом событии копирования.
$.fn.changevalue = function(v) {
return this.val(v).trigger('select'); // this is already a jQuery object
}
$('#address input').bind('copy', function() {
var $this = $(this),
origval = $this.val();
$this.changevalue('http://' + origval);
setTimeout(function(){
$this.val(origval);
}, 0);
});
Демо: http://jsfiddle.net/TGHcD/