Adds "Clear" button to each column.
当前为
// ==UserScript==
// @name TweetDeck Clear Buttons
// @namespace guebosch
// @author guebosch, https://github.com/gregorb/TweetDeckClearButtons
// @description Adds "Clear" button to each column.
// @match https://tweetdeck.twitter.com/*
// @match https://x.com/*
// @version 2024-06-10
// @license MIT
// ==/UserScript==
// Chrome installation instructions: open settings/extensions page, drag&drop this file into it.
const debug = false;
const timer = window.setInterval( function() {
// keep checking for new/updated columns every few seconds
if (debug) console.log("GB's TweetDeck Helper: Checking.");
// list all columns that don't have our "Clear" button yet
const columnsToUpdate = document.querySelectorAll("div.column-header-links > a:not(.gb)");
if (columnsToUpdate && columnsToUpdate.length) {
if (debug) console.log("GB's TweetDeck Helper: " + columnsToUpdate.length );
columnsToUpdate.forEach(function(value) {
// value = options button
// tag it, so we know we've already been here
value.className += " gb";
// an extra button may cause the original one to word-wrap out of view; this prevents that from happening
value.parentNode.style.whiteSpace = 'nowrap';
const a = document.createElement("a");
a.className = "js-action-header-button column-header-link gb";
a.href = "#";
a.innerHTML = '<i class="icon icon-clear-timeline"></i>';
a.setAttribute("data-action", "clear");
a.style.left = "200px";
value.parentNode.insertBefore(a, value);
a.addEventListener("click", function(){
value.click(); // open settings panel
window.setTimeout(function(){
// find the root element of our column
let clrButton = value;
while ( clrButton && !clrButton.classList.contains('column-holder') )
clrButton = clrButton.parentNode;
if (!clrButton) {
console.log("GB's TweetDeck Helper: column't root element not recognised; class-name changed?");
return;
}
// now find our column's "clear" button
clrButton = clrButton.querySelector("button[data-action='clear']");
if (!clrButton) {
console.log("GB's TweetDeck Helper: column't 'Clear' button not found; class-name changed?");
return;
}
clrButton.click(); // click on original "clear" button
value.click(); // close settings panel
}, 1000);
});
});
}
}, 3000 );