Make Color Hunt a little nicer to use. :P
// ==UserScript==
// @name Copy Hex to Clipboard | ColorHunt.co
// @namespace http://colorhunt.co/
// @version 1.03
// @description Make Color Hunt a little nicer to use. :P
// @author Shaun Greiner
// @match http://colorhunt.co/c/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
var hexSpans = document.querySelectorAll('.focus .place .tran');
var copyInputBox = createCopyInputBox();
createCopyAllButton();
copySingleHexInit();
function createCopyInputBox(){
var copyInputBox = document.createElement("input");
copyInputBox.type = "text";
copyInputBox.id = "copyInputBox";
copyInputBox.style = {"display":"none"};
var cIB = document.body.appendChild(copyInputBox);
return cIB;
}
function createCopyAllButton(){
var copyAllBtn = document.createElement("a");
copyAllBtn.text = "Copy";
copyAllBtn.className = "copy button tran";
copyAllBtn.addEventListener("click",function(){ copyToClipboard( hexesToString() ); });
document.querySelector(".focus .actionbar .left").appendChild(copyAllBtn);
}
function copyToClipboard(value){
copyInputBox.value = value;
copyInputBox.select();
try{
var successful = document.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful';
console.log('Copy was ' + msg);
} catch(err){
console.error(err);
}
window.getSelection().removeAllRanges();
copyInputBox.blur();
}
function copySingleHexInit(){
for(var i=0; i<hexSpans.length; i++){
var span = hexSpans[i];
span.addEventListener("click", (event)=>{
copyToClipboard(event.target.innerText);
});
}
}
function hexesToString(){
var hexArray = [];
for(var i=0; i<hexSpans.length; i++){
hexArray.push(hexSpans[i].innerText);
}
console.log(hexArray);
return hexArray.join(", ");
}
})();