AutoSaveDiv

save and restores div.contenteditable texts

目前為 2014-12-21 提交的版本,檢視 最新版本

// ==UserScript==
// @name        AutoSaveDiv
// @namespace   AutoSaveDiv
// @description save and restores div.contenteditable texts
// @include     *
// @version     1
// @grant       GM_setValue
// @grant       GM_getValue
// @author		Dediggefedde
// ==/UserScript==

var active=false;
var isCtrl=false;
var isShift=false;
var isAlt=false;
var name="";
var altstil;
var img=document.createElement("div");

img.addEventListener("contextmenu",function(e){
	console.log(name);
	img.previousSibling.innerHTML=GM_getValue(name);
	e.preventDefault();
	return false;
},false);

img.addEventListener("click",function(e){
	e.preventDefault();
	if(e.which==1)listenView(img.previousSibling);
	// else if(e.which==3)
	return false;
},true);
		
function listenView(el){
	
	active=!active;
	if(active){
		console.log(el);
		img.style.backgroundColor="red";
		altstil=el.style.border;
		el.style.border="1px solid red";
	}else {
		img.style.backgroundColor="blue";
		el.style.border=altstil;
	}
}

document.addEventListener("click",function(e){
	if(this==img||active)return false;
	if(document.activeElement.tagName=="DIV"&&document.activeElement.getAttribute("contenteditable")){
		name=location.host+"::"+document.activeElement.tagName+"_"+document.activeElement.className+"_"+document.activeElement.id;
		img.setAttribute("style","width:20px;height:20px;position:relative;margin-top:-20px;opacity:0.5;border:1px solid blue;background-color:blue;border-top-right-radius:15px;");
		img.title="leftclick: de-/activate capturing text!\nrightclick: restore last text!\nstored:\n"+GM_getValue(name);
		document.activeElement.parentNode.insertBefore(img, document.activeElement.nextSibling);
	}	
},true);

document.addEventListener("keydown",function(e){
	switch(e.which){
		case 17:isCtrl=true;break;
		case 16:isShift=true;break;
		case 18:isAlt=true;break;
		default:
	};
},true);

document.addEventListener("keyup",function(e){
	switch(e.which){
		case 17:isCtrl=false;break;
		case 16:isShift=false;break;
		case 18:isAlt=false;break;
		case 68: //d
			if(isShift&&isCtrl&&isAlt){
				listenView(document.activeElement);
			}			
			break;
		case 83: //s
			if(!active&&isShift&&isCtrl&&isAlt)document.activeElement.innerHTML=GM_getValue(name);
			break;
		default:
	};
	if(active){
		GM_setValue(name,document.activeElement.innerHTML);
		img.title="leftclick: de-/activate capturing text!\nrightclick: restore last text!\nstored:\n"+GM_getValue(name);
	}
},true);

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址