🏠 Home 

Greasy Fork is available in English.

Checkvist Focus Trail Display

Displays a dynamic breadcrumb location trail that shows where you are while in both standard and (hoist) focus mode.


安装此脚本?
// ==UserScript==
// @name          Checkvist Focus Trail Display
// @namespace     CFTD
// @description   Displays a dynamic breadcrumb location trail that shows where you are while in both standard and (hoist) focus mode.
// @include       https://checkvist.com/checklists/*
// @include       http://checkvist.com/checklists/*
// @require       http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// @require       https://greasyfork.org/scripts/8984-jquery-hotkeys-plugin/code/jQuery%20Hotkeys%20Plugin.js?version=44373
// @author        drhouse
// @icon          https://checkvist.com/favicon.ico
// @version       04.31.15.1501
// ==/UserScript==
$(document).ready(function () {
$('<center><div id="above"></div></center>').insertAfter("#toolbar")
$('#above').css("color","#0980f4");
$('#above').css("height","12px");
$('<div id="place"><p>place</p></div>').appendTo("body")
$('#place').css("position","relative");
$('#place').css("left","-9999px");
var theparenturl = document.URL;
var theurl = document.URL;
var simple = (theurl + "?simple=true");
var txt = (theurl + ".txt");
ifrm = document.createElement("iframe");
ifrm.setAttribute("src", simple);
ifrm.style.width = 0+"px";
ifrm.style.height = 0+"px";
var isInIFrame = (window.location != window.parent.location);
if(isInIFrame==true){
$('<div id="trails"></div>').insertBefore("body")
$('<center><div id="places">&nbsp;</div></center>').insertBefore("#trails")
var htmlStr = $('body').html();
htmlStr = htmlStr.replace(/<ul>/g, "</li><ul>");
htmlStr = htmlStr.replace(/<\/ul><\/li>/g,"</ul>");
htmlStr = htmlStr.replace(/<\/h1><\/li>/g,"</h1>");
$("#trails").html(htmlStr)
$("body").html(htmlStr)
$("body").html("")
setInterval(function() {
var input = $(window.parent.document).find("#place").text();
var path = $("span:contains('"+ input +"')").filter (function() {return $(this).text() === input; } ).parents("ul")
.prev("li").find("span").add(this)
.map(function() {
return $(this).text();
}).get().join(" > ");
if (!input){
path = '[ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]'
}
else {
var lastpath = path
path = '[ '+path + input+' ]'
}
$("#places").html(path)
}, 10);
}
else {
document.body.appendChild(ifrm)
}
jQuery(document).bind('keydown', 'Shift+Return', function (evt){
return false;
});
jQuery(document).bind('keyup', 'Return', function (evt){
update();
return false;
});
jQuery(document).bind('keydown', 'Del', function (evt){
update();
return false;
});
jQuery(document).bind('keydown', 'Ctrl+Shift+u', function (evt){
update();
return false;
});
$('input').click(function(){
update()
}
);
function update() {
$( 'iframe' ).attr( 'src', function ( i, val ) { return val; });
}
setInterval(function() {
$("#place").html($(".selectedTask").find(".selectedTask .userContent").text());
$("#above").text($('iframe').contents().find('#places').text());
}, 10);
});