Skip to content

Instantly share code, notes, and snippets.

@nikolay-n
Created September 17, 2020 21:51
Show Gist options
  • Save nikolay-n/52cebd5272425b4767375162a5f98ac1 to your computer and use it in GitHub Desktop.
Save nikolay-n/52cebd5272425b4767375162a5f98ac1 to your computer and use it in GitHub Desktop.
Userscript to persist "Add N more rows at bottom" value in Google Spreadsheets
// ==UserScript==
// @name GoogleDocsExtensions
// @description Adds some features to Google Docs
// @match https://docs.google.com/spreadsheets/d/*
// ==/UserScript==
var storage = window.localStorage;
var oldHref = document.location.href;
var bodyList = document.querySelector("body");
var currentHref = null;
var currentRowsInput = null;
var observer = new MutationObserver(function() {
if (oldHref != document.location.href) {
oldHref = document.location.href;
}
checkRowsInput();
});
var config = {
childList: true,
subtree: true
};
observer.observe(bodyList, config);
function checkRowsInput(){
var rowsInput = document.querySelector('.addRowsInput');
if (!rowsInput) return;
if(rowsInput != currentRowsInput){
currentRowsInput = rowsInput;
if(!rowsInput.getAttribute("isSetChangeHandler")){
rowsInput.setAttribute("isSetChangeHandler", true);
rowsInput.addEventListener("change", function(){
storage.setItem(oldHref, rowsInput.value);
})
}
if(currentHref != oldHref){
var rowsValue = storage.getItem(oldHref);
if(rowsValue){
rowsInput.value = rowsValue;
}
currentHref = oldHref;
}
}
}
@nikolay-n
Copy link
Author

Used in Safari with https://github.com/quoid/userscripts extension

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment