Use left and right arrows to navigate Piazza post history
// ==UserScript==
// @name Piazza History Keybindings
// @namespace https://piazza.com
// @version 0.2
// @description Use left and right arrows to navigate Piazza post history
// @author David Harris, Yuto Takano
// @match https://piazza.com/*
// @grant none
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js
// ==/UserScript==
// Avoid conflicts
this.$ = this.jQuery = jQuery.noConflict(true);
function moveHistorySlider(increment) {
// `P` is a Piazza internal variable
// I discovered this while exploring their scripts
var newVal = P.history_slider.slider.value[0] + increment;
if(newVal < P.history_slider.slider.min) newVal = P.history_slider.slider.min;
if(newVal > P.history_slider.slider.max) newVal = P.history_slider.slider.max;
P.history_slider.slider.element.slider("setValue", newVal).trigger("slide");
}
$(document).ready(function () {
$(document).keydown(function(e) {
var element;
if(e.target) element = e.target;
else if(e.srcElement) element = e.srcElement;
if(element.nodeType == 3) element = element.parentNode;
if(element.tagName.toLowerCase() == "input" || element.tagName.toLowerCase() == "textarea") return;
switch(e.which) {
case 37:
moveHistorySlider(-1);
break;
case 39:
moveHistorySlider(1);
break;
default: return;
}
e.preventDefault();
});
});