NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name NextINpact - Citations actu
// @namespace https://www.nextinpact.com/
// @match https://www.nextinpact.com/*
// @description Ajoute le bouton de citations dans la barre d'action. Dev/test sous FF 55.0.3
// @version 1.0.1
// @grant Arcy / arcy-nxi
// ==/UserScript==
var isLoaded = false;
const quoteOpened = "[quote]";
const quoteClosed = "[/quote]";
const buttonText = "[Q]";
const version = "1.0.2";
// évenement "load" -> si le navigateur charge l'article ET les commentaires en même temps (avant l'exécution de ce script)
// évènement "onscroll" -> si le navigateur charge le script avant les commentaires
if(window.addEventListener){
window.addEventListener('load', createButton, false);
window.addEventListener('scroll', createButton, false);
}
else{
window.attachEvent('onload', createButton);
window.attachEvent('onscroll', createButton);
}
// créer le bouton "Q" (Quote)
function createButton(){
// ajoute le bouton une seule fois
if (document.getElementById("global_comment") != null && !isLoaded){
isLoaded = true;
var quoteAction = document.createElement("button");
quoteAction.id = "quote_action";
quoteAction.title = "Citations";
quoteAction.classList.add("icon-quote");
quoteAction.classList.add("btn-action-editor");
quoteAction.innerHTML = buttonText;
quoteAction.onclick = eventClickButton;
document.getElementById("action_button_post_comment").appendChild(quoteAction);
}
}
// créer la balise [QUOTE]
function eventClickButton(){
var str = document.getElementById('textarea_comment').value;
// emplacement du curseur / de la sélection
var selStart = document.getElementById('textarea_comment').selectionStart;
var selEnd = document.getElementById('textarea_comment').selectionEnd;
var strLength = document.getElementById('textarea_comment').value.length;
var strStart = str.substring(0, selStart);
var strSelected = str.substring(selStart, selEnd);
var strEnd = str.substring(selEnd, strLength);
document.getElementById('textarea_comment').value = strStart + quoteOpened + strSelected + quoteClosed + strEnd;
// donne le focus à la zone de commentaire
// dans le cas où aucun texte était sélectionné, on place le curseur entre les balises
if (strSelected == "") {
var curs = selStart + quoteOpened.length;
document.getElementById('textarea_comment').selectionStart = curs;
document.getElementById('textarea_comment').selectionEnd = curs;
}
document.getElementById('textarea_comment').focus();
}
console.log("Script NXI - citations " + version + " chargé");