Kopyalanan yazıya otomatik olarak kaynak linki nasıl eklenir?

JavaScript

Dünyanın en popüler blogları bile ufak bir alıntıda kaynak linki vermeye ihtiyaç duyarken ülkemizde bu durum tam tersi. Özellikle blog yazarlarının şikayetçi olduğu bu makale hırsızlığı furyasına çözüm bulmak imkansız. Fakat JavaScript ile hırsızları en azından yavaşlatabilirsiniz.

Bu dersimizde sitenizden kopyalanan metinlere kaynak linki ekleyeceğiz.

Nasıl yapılır?

Her geçen gün daha da popülerleşen bu JavaScript kodunu sitenizin istediğiniz alanına ekleyebilirsiniz. Fakat <head></head> alanları içerisine eklemenizi öneririz.

İlk olarak sayfa taslağı üzerinden çalışmaya başlayalım. Ama önce fonksiyon tanımlamamızı yapalım.

function kaynak() {
var body_element = document.getElementsByTagName('body')[0];

Daha sonra seçim üzerinden işlemler yapmak için bir var tanımlayalım.


var selection;
 selection = window.getSelection();

En önemli kısıma geldik. Kopyalama işlemiyle birlikte gidecek olan kaynak metnini belirleyelim. Çift tırnak içerisindeki alanı düzenleyebilirsiniz. Document.location.href+ size metnin kopyalandığı sayfayı verir.

var metin = "<br /><br /> Kaynak : <a href='"+document.location.href+"'>"+document.location.href+"</a>";

Şimdi kopyalanan metin alanını HTML içerisinde gizleyelim.


var kopyalanan = selection + metin;
 var gizliDiv = document.createElement('div');
 gizliDiv.style.position='absolute';
 gizliDiv.style.left='-99999px';
 body_element.appendChild(gizliDiv);
 gizliDiv.innerHTML = kopyalanan;
 selection.selectAllChildren(gizliDiv);
 window.setTimeout(function() {
 body_element.removeChild(gizliDiv);
 },0);

ve son olarak fonksiyonu kapatalım.


}
document.oncopy = kaynak;

Kısaca

Tek tek uğraşmak zor geliyor ve işin mantığı değil, işlevi sizi ilgilendiriyorsa buradan buyrun. İşte tüm kodlar derlenmiş şekilde aşağıda :

<script type="text/javascript">
function kaynak() {
	var body_element = document.getElementsByTagName('body')[0];
	var selection;
	selection = window.getSelection();
	/* Alttaki alanı düzenleyebilirsiniz */
	var metin = "<br /><br /> Kaynak : <a href='"+document.location.href+"'>"+document.location.href+"</a>";
	var kopyalanan = selection + metin;
	var gizliDiv = document.createElement('div');
	gizliDiv.style.position='absolute';
	gizliDiv.style.left='-99999px';
	body_element.appendChild(gizliDiv);
	gizliDiv.innerHTML = kopyalanan;
	selection.selectAllChildren(gizliDiv);
	window.setTimeout(function() {
		body_element.removeChild(gizliDiv);
	},0);
}
document.oncopy = kaynak;
</script>

Şimdi küçük bir örnek oluşturalım.

Örnek