Существует следующий скрипт добавления в скопированный текст ссылки на источник:
function addLink() {
var body_element = document.getElementsByTagName('body')[0];
var selection = window.getSelection();
var pagelink = " <a href='"+document.location.href+"'>источник</a> © ";
var copytext = selection + pagelink;
var newdiv = document.createElement('div');
newdiv.style.position = 'absolute';
newdiv.style.left = '-99999px';
body_element.appendChild(newdiv);
newdiv.innerHTML = copytext;
selection.selectAllChildren(newdiv);
window.setTimeout( function() {
body_element.removeChild(newdiv);
}, 0);
}
document.oncopy = addLink;
Ссылка тут вставляется после текста.
Мне нужно вставить ссылку в текст, в определенное слово. В следующем коде я ищу в скопированном тексте последнее слово "собака" и делаю его ссылкой на источник.
function addLink() {
var body_element = document.getElementsByTagName('body')[0];
var selection;
selection = window.getSelection();
var pos = (''+selection).lastIndexOf("Собака");
var pagelink = "<a href='"+document.location.href+"'>Собака</a>";
String.prototype.replaceAt=function(index, character) {
return this.substr(0, index) + character + this.substr(index+6);
}
var copytext = (''+selection).replaceAt(pos, pagelink);
//alert(copytext);
var newdiv = document.createElement('div');
newdiv.style.position='absolute';
newdiv.style.left='-99999px';
body_element.appendChild(newdiv);
newdiv.innerHTML = copytext;
selection.selectAllChildren(newdiv);
window.setTimeout(function() {
body_element.removeChild(newdiv);
},0);
}
document.oncopy = addLink;
Проблема в том, что когда я вставляю этот скопированный текст, то созданный div тоже вставляется, а не удаляется, как в верхнем примере поэтому вставленый текст в редакторе не видно. Помогите решить проблему.
Так вставляется в редактор:
<div style="position: absolute; left: -99999px;">у нас есть большая <a href='http://localhost/basic9/web/news/politics/2'>Собака</a>.</div>
А так в обычное поле (по идее для редактора мне нужно тоже самое только в виде гиперссылки):
у нас есть большая <a href='http://localhost/basic9/web/news/politics/2'>Собака</a>.