плагин для jQuery
Создадим элемент на основе инициализации плагина, который будем подсовывать копипастеру.
Если копипастер выделил текст, то добавляем нашу ссылку в выделенный текст.
При новом mousedown будем чистить старый копирайт-элемент со ссылкой.
Естественно ссылка не должна быть видна, добавляем нужное оформление для нее:
Как пользоваться:
— Плагин: Скачать addtocopy
Пример: тут
Известные глюки:
В Опере текст выделяется с лева на право
В Firefox'e если addcopyfirst: true, то текст в первый раз не выделяется
Создадим элемент на основе инициализации плагина, который будем подсовывать копипастеру.
var options = {htmlcopytxt: '<br>More: <a href="'+window.location.href+'">'+window.location.href+'</a>', minlen:25, addcopyfirst: false}
$.extend(options, usercopytxt);
var copy_sp = document.createElement('span');
copy_sp.id = 'ctrlcopy';
copy_sp.innerHTML = options.htmlcopytxt;
Если копипастер выделил текст, то добавляем нашу ссылку в выделенный текст.
$(this).mouseup(function(){
if(window.getSelection){ //для хороших
selected=window.getSelection();
seltxt=selected.toString();
nslct = selected.getRangeAt(0);
seltxt = nslct.cloneRange();
seltxt.collapse(false);
seltxt.insertNode(copy_sp);
nslct.setEndAfter(copy_sp);
selected.removeAllRanges();
selected.addRange(nslct);
} else if(document.selection){ //для плохих
selected = document.selection;
nslct=selected.createRange();
seltxt=nslct.text;
seltxt=nslct.duplicate();
seltxt.collapse(false);
seltxt.pasteHTML(copy_sp.outerHTML);
nslct.setEndPoint("EndToEnd",seltxt);
nslct.select();
}
});
При новом mousedown будем чистить старый копирайт-элемент со ссылкой.
$(this).mousedown(function(){
$('#ctrlcopy').remove();
});
Естественно ссылка не должна быть видна, добавляем нужное оформление для нее:
<style>
#ctrlcopy {
height:1px;
overflow:hidden;
position:absolute;
width:1px;
margin: 5px 0 0 -1px;
line-height:0;
opacity: 0;
}
</style>
Как пользоваться:
— Плагин: Скачать addtocopy
<script type="text/javascript">
$(function(){
$("#content").addtocopy({htmlcopytxt: '<br>Подробнее: <a href="'+window.location.href+'">'+window.location.href+'</a>', minlen:35, addcopyfirst: false});
});
</script>
Опции обрабатываемые плагином:
Опция | Описание |
htmlcopytxt | что добавлять к скопированному в буфер, принимает html |
minlen | минимальная длинна выделяемого текста, принимает int |
addcopyfirst | добавлять htmlcopytxt в начало буфера обмена или в конец, true/false |
Пример: тут
Известные глюки:
В Опере текст выделяется с лева на право
В Firefox'e если addcopyfirst: true, то текст в первый раз не выделяется
Комментарии
Отправить комментарий