As-tu déjà tenté de chercher ton contenu sur le Web ? C’est assez affolant ce que les gens peuvent parfois te copier…Vérifie un coup, tu vas voir. Dans mon apprentissage de Jquery et pour ne pas faire que des conneries, je me suis dis que j’allais reprendre un truc sympa pour profiter de ces copieurs du dimanche…
C’est un articles sur le Black Hat et un script JS d’auto link building qui m’ont donnée l’idée.
Je n’invente donc rien, je ne fais que passer tout ça sous Jquery pour plus de souplesse…
(function($){
$.fn.copyDetect = function(options) {
var opts = $.extend({},$.copyDetect.defaults, options);
var selection,copytext,selectionLength;
return this.each(function () {
var $$ = $(this);
/* on ecoute */
$$.bind('cut copy', function(e) {
/* recupération de la selection */
function getSelectedText() {
if (window.getSelection) {return window.getSelection();}
else if (document.getSelection) {return document.getSelection();}
else if (document.selection) {return document.selection.createRange().text;}
}
selection = getSelectedText();
/* on reformule la selection. */
selectionLength = selection.toString().length;
if (selectionLength > opts.minLength )
{
if (opts.keywords)
{
/* on va ajouter un mot clé */
var keywordsArray = opts.keywords.split(",");
var randKeyword = (keywordsArray)? Math.floor(Math.random() * keywordsArray.length):opts.link;
}
var url = (opts.addLink)? '<a href="'+opts.link+'">'+opts.link+'</a>':'';
copytext = selection.toString();
copytext += '<br/>';
copytext += (randKeyword)? 'Apprenez en plus sur '+keywordsArray[randKeyword]:'';
copytext += (opts.addLink)? '<br/>Sur: ' +url : '';
copytext += (opts.author)? ' Par ' + opts.author : '';
var newdiv = $("<div/>")
.append(copytext)
.css({
position:'absolute',
left:'-9999px'
})
.appendTo('body');
/* la selection change */
selection.selectAllChildren(newdiv[0]);
/* on supprime la div */
setTimeout(function() {
$(newdiv).remove();
},0);
}
});
});
};
/* options */
$.copyDetect = {
defaults : {
minLength: 40,
link: document.location.href,
addLink:true,
author : $('meta[name=author]').attr("content")|| '',
keywords: $('meta[name=keywords]').attr("content") || ''
}
};
})(jQuery);
Utilisation:
$(document).ready(function() {
$('#test').copyDetect({link:'http://www.toto.com',author:'tonnom',keywords:'test1,test2,test3'});
$('#test2').copyDetect({addLink:false});
});
Il suffira de configurer convenablement le plugin.
Sans configuration, le plugin ira chercher dans la balise title et les méta keywords de quoi broder un peu de contenu autour du lien ( celui de la page copiée par défaut ).
Amuse-toi bien
1 Commentaire sur cet article
Laisser un commentaireEt comment ça s’implémente en fait tout ça ?
J’utilise WordPress et je n’ai pas la moindre de comment on utilise ton code. Tu pourrais ajouter un mini tuto ?
Merci.
Posté le 26.9.2011 par Vinz