- // ==UserScript==
- // @name Write a note!
- // @version 2.3.2
- // @description You can edit a note on all websites!
- // @match http://*/*
- // @match https://*/*
- // @exclude https://apis.google.com/*
- // @exclude https://evernote.com/Home*
- // @exclude http://mail.google.com/tasks/canvas*
- // @exclude https://talkgadget.google.com/u/0/talkgadget*
- // @exclude http*://www.facebook.com/plugins/*
- // @copyright 2014+, ich01
- // @namespace https://greasyfork.org/scripts/92
- // @grant GM_registerMenuCommand
- // @grant GM_setValue
- // @grant GM_getValue
- // ==/UserScript==
- var uw = (this.unsafeWindow) ? this.unsafeWindow : window;
- uw.WriteANote = {
- langArray: [],
- pageURL: "",
- littleNote: false,
- init: function() {
- WriteANote.addGMMenuItem();
- WriteANote.initLittleNote();
- WriteANote.insertStyles();
- WriteANote.initLanguage();
- //Getting formatted url for localStorage saving
- var _url = document.location.toString();
- if (_url.indexOf("?")) {
- _url = _url.slice(0,_url.indexOf("?"));
- }
- WriteANote.pageURL=_url;
- WriteANote.checkForLittleNote();
- },
- addGMMenuItem: function() {
- GM_registerMenuCommand("Write A Note",function() {WriteANote.openPopup();});
- },
- initLanguage: function() {
- WriteANote.langArray[0] = "Your Note";
- WriteANote.langArray[1] = "Save";
- WriteANote.langArray[2] = "Delete";
- WriteANote.langArray[3] = "Settings";
- WriteANote.langArray[4] = "Your note was saved!";
- WriteANote.langArray[5] = "Your note was deleted!";
- WriteANote.langArray[6] = "Close";
- WriteANote.langArray[7] = "Enable little note in top-left page-corner";
- if (navigator.language.toString().toLowerCase().indexOf("de")>-1) {
- WriteANote.langArray[0] = "Deine Notiz";
- WriteANote.langArray[1] = "Speichern";
- WriteANote.langArray[2] = "Löschen";
- WriteANote.langArray[3] = "Einstellungen";
- WriteANote.langArray[4] = "Deine Notiz wurde gespeichert!";
- WriteANote.langArray[5] = "Deine Notiz wurde geloescht!";
- WriteANote.langArray[6] = "Schließen";
- WriteANote.langArray[7] = "Mini-Notiz in Ecke links-oben aktivieren";
- }
- },
- openPopup: function() {
- if (document.getElementsByTagName("writeanotepopup").length==0) {
- var xyElement = document.createElement("writeanotepopup");
- xyElement.style.position="fixed";
- xyElement.style.borderRadius="3px";
- xyElement.style.minWidth="500px";
- xyElement.style.minHeight="350px";
- var leftAbstand = (window.innerWidth-500)/2;
- var topAbstand = (window.innerHeight-350)/2;
- xyElement.style.left=leftAbstand+"px";
- xyElement.style.top=topAbstand+"px";
- xyElement.style.zIndex="9999999999999";
- xyElement.style.border="1px solid black";
- xyElement.style.backgroundColor="rgba(200,200,200,0.9)";
- xyElement.style.display="block";
- xyElement.style.overflow="scroll";
- xyElement.style.textAlign="left";
- xyElement.style.color="black";
- var string1 = "<span style='left:-1px;background:rgb(245,233,237);width:97%;margin-left:0px;position:absolute;padding:7px;font-family:Arial;font-size:16px;font-weight:bold;color:black;'>Write A Note!</span>";
- string1+="<span style='right:0px;position:absolute;cursor:pointer;top:0px;font-family:Arial;' onclick=WriteANote.closePopup();>"+WriteANote.langArray[6]+"</span>";
- string1+="<br><br><br>";
- string1+="<span style='background-color:rgba(118,105,199,0.7);color:black;font-weight:bold;font-family:Arial;width:50%;border-radius:3px;padding:1px;position:absolute;'>"+WriteANote.langArray[0]+"</span><br>";
- string1+="<textarea id=writeanotetextarea placeholder='"+WriteANote.langArray[0]+"' rows=4 cols=45 style='font-family:Tahoma;color:black;border:1px solid rgb(140,250,106);'>"+WriteANote.getSavedNote()+"</textarea><br>";
- string1+="<table border=0 cellpadding=1 cellpadding=1><tr><td><button onclick=WriteANote.saveNote();>"+WriteANote.langArray[1]+"</button></td><td><button onclick=WriteANote.deleteNote();>"+WriteANote.langArray[2]+"</td></tr></table><br>";
- string1+="<span style='background-color:rgba(118,105,199,0.7);color:black;font-weight:bold;font-family:Arial;width:50%;border-radius:3px;padding:1px;position:absolute;'>"+WriteANote.langArray[3]+"</span><br>";
- var littleNoteChecked = "";
- if (WriteANote.littleNote==true) {
- littleNoteChecked = "checked";
- }
- string1+="<input type=checkbox onchange=WriteANote.gmChangeNoteStatus(); "+littleNoteChecked+">"+WriteANote.langArray[7]+"</input><br>";
- xyElement.innerHTML=string1;
- document.body.appendChild(xyElement);
- } else {
- document.getElementsByTagName("writeanotepopup")[0].style.display="block";
- }
- },
- saveNote: function() {
- var newNote = document.getElementById("writeanotetextarea").value;
- localStorage.setItem(WriteANote.pageURL+"_notf",newNote);
- alert(WriteANote.langArray[4]);
- },
- deleteNote: function() {
- localStorage.removeItem(WriteANote.pageURL+"_notf");
- document.getElementById("writeanotetextarea").value="";
- alert(WriteANote.langArray[5]);
- },
- getSavedNote: function() {
- if (localStorage.getItem(WriteANote.pageURL+"_notf")!=null) {
- return localStorage.getItem(WriteANote.pageURL+"_notf");
- } else {
- return "";
- }
- },
- closePopup: function() {
- if (document.getElementsByTagName("writeanotepopup").length==1) {
- document.getElementsByTagName("writeanotepopup")[0].outerHTML="";
- }
- },
- gmChangeNoteStatus: function() {
- if (WriteANote.littleNote==true) {
- WriteANote.gmDisableNote();
- } else {
- WriteANote.gmEnableNote();
- }
- },
- gmEnableNote: function() {
- setTimeout(function() {
- GM_setValue("littleNote", "true");
- }, 0);
- },
- gmDisableNote: function() {
- setTimeout(function() {
- GM_setValue("littleNote", "false");
- }, 0);
- },
- initLittleNote: function() {
- if (GM_getValue("littleNote")=="true") {
- WriteANote.littleNote = true;
- } else {
- WriteANote.littleNote = false;
- }
- },
- insertStyles: function() {
- var myStyle = document.createElement("style");
- myStyle.setAttribute("type", "text/css");
- document.getElementsByTagName("head")[0].appendChild(myStyle);
- var styles = document.styleSheets.length;
- myStyle = document.styleSheets[styles-1];
- if (document.styleSheets[0].cssRules) {
- myStyle.insertRule("writeanotelittle {font-family:Tahoma; font-size:0px; cursor:pointer; z-index:9999999999999; white-space:nowrap; text-align:left; color:black;transition:all 0.3s ease; overflow:hidden; width:10px; min-width:10px; min-height:10px; height:10px; background-color:yellow; position:fixed; top:0px; left:0px; text-overflow:ellipsis; opacity:0.8; border:1px solid black; border-radius:3px;}", 0);
- myStyle.insertRule("writeanotelittle:hover {font-size:14px; width:100px; height:20px;}", 0);
- } else {
- if (document.styleSheets[0].rules) {
- myStyle.addRule("writeanotelittle", "font-family:Tahoma; font-size:0px; cursor:pointer; z-index:9999999999999; white-space:nowrap; text-align:left; color:black; transition:all 0.3s ease; overflow:hidden; width:10px; min-width:10px; min-height:10px; height:10px; background-color:yellow; position:fixed; top:0px; left:0px; text-overflow:ellipsis; opacity:0.8; border:1px solid black; border-radius:3px;");
- myStyle.addRule("writeanotelittle:hover", "font-size:14px; width:100px; height:20px;");
- }
- }
- },
- checkForLittleNote: function() {
- if (WriteANote.littleNote==true) {
- var littleNote = document.createElement("writeanotelittle");
- littleNote.setAttribute("id","writeanotelittle");
- littleNote.setAttribute("onclick","WriteANote.openPopup();");
- document.body.appendChild(littleNote);
- document.getElementById("writeanotelittle").innerHTML=WriteANote.getSavedNote();
- }
- }
- };
- if (navigator.userAgent.toLowerCase().indexOf("firefox")>-1) {
- window.WriteANote = uw.WriteANote;
- console.log("Firefox detected. Compatibility mode enabled.");
- }
- WriteANote.init();