您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Enable shift-click checkbox to select items bulkly in Bitwarden web.
// ==UserScript== // @name Bitwarden Select Enhance // @namespace http://tampermonkey.net/ // @version 0.1.2 // @description Enable shift-click checkbox to select items bulkly in Bitwarden web. // @author moeakwak // @match https://vault.bitwarden.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=bitwarden.com // @require https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js // @grant none // @license MIT // ==/UserScript== function waitForElment(selector) { return new Promise(resolve => { if (document.querySelector(selector)) { return resolve(document.querySelector(selector)); } const observer = new MutationObserver(mutations => { if (document.querySelector(selector)) { resolve(document.querySelector(selector)); observer.disconnect(); } }); observer.observe(document.body, { childList: true, subtree: true }); }); } function selectBetween(tbody, from, to) { tbody.children("tr").each(function (index) { if (index > from && index < to) $(this).find("td.table-list-checkbox > input").click(); }) } function bindOnClick(tbody) { tbody.children("tr").each(function (index) { $(this).find("td.table-list-checkbox > input").click(function (ev) { // console.log("clicked", index, ev); if (ev.shiftKey) { selectBetween(tbody, lastClickIndex, index); } else { lastClickIndex = index; } }) }) } let lastClickIndex = null; $(document).ready(async function() { await waitForElment("app-vault-ciphers > table"); const tbody = $("app-vault-ciphers > table > tbody"); bindOnClick(tbody); tbody.bind('DOMSubtreeModified', function(e) { if (e.target.innerHTML.length > 0) { bindOnClick(tbody); } }); });