您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
This is a shortcut for using hypothes.is service. It combines the hypothes.is bookmarklet to the page directly for a further convience.
// ==UserScript== // @name hypothes.isFloatingButton // @namespace https://greasyfork.org/users/296362 // @version 240117a // @author Lancelotly.Sagirrarimeow // @description This is a shortcut for using hypothes.is service. It combines the hypothes.is bookmarklet to the page directly for a further convience. // @match *://*/* // @exclude https://hypothes.is/* // @noframes // @run-at document-idle // @grant GM_addStyle // @icon data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNjMgNzMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTYzIDU4YTUgNSAwIDAgMSAtNSA1aC0xOWwtNy41IDEwLTcuOC0xMGgtMTguN2E1IDUgMCAwIDEgLTUtNXYtNTNhNSA1IDAgMCAxIDUtNWg1M2E1IDUgMCAwIDEgNSA1eiIgZmlsbD0iI2NlMjAyNyIvPjxnIGZpbGw9IiNmZmYiPjx0ZXh0IGZvbnQtZmFtaWx5PSJQVFNhbnMtQm9sZCwgUFQgU2FucyIgZm9udC1zaXplPSI1OC4xNSIgZm9udC13ZWlnaHQ9IjcwMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNy43NyA1Mi4zOSkiPmg8L3RleHQ+PGNpcmNsZSBjeD0iNDkuOTEiIGN5PSI0NyIgcj0iNSIvPjwvZz48L3N2Zz4= // @connect * // ==/UserScript== /*--- Create a button in a container div. It will be styled and positioned with CSS.*/ function buttonClickAction(t) { ! function () { window.hypothesisConfig = function () { return { showHighlights: !0 } }; var t = document, e = t.createElement("script"); e.setAttribute("src", "https://hypothes.is/embed.js") t.body.appendChild(e) }() } function findMaxZindex() { const zIndexes = []; document .querySelectorAll("*") .forEach(el => { const zIndex = parseInt(window.getComputedStyle(el).zIndex, 10); if (!isNaN(zIndex)) { zIndexes.push(zIndex); } }); return Math.max.apply(1, zIndexes); } var hNode = document.createElement("div"), z = findMaxZindex(); hNode.innerHTML = '<div id="fButton" data-toggle="tooltip" data-placement="left" data-original-title="Create"></div>' hNode.style.zIndex = z + 1 hNode.setAttribute("id", "myFloatingButton") document.body.appendChild(hNode) document.getElementById("fButton").addEventListener("click", buttonClickAction, !1); //--- Style our newly added elements using CSS. GM_addStyle(` #myFloatingButton { width: 25px; height: 25px; border-radius: 50%; background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNjMgNzMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTYzIDU4YTUgNSAwIDAgMSAtNSA1aC0xOWwtNy41IDEwLTcuOC0xMGgtMTguN2E1IDUgMCAwIDEgLTUtNXYtNTNhNSA1IDAgMCAxIDUtNWg1M2E1IDUgMCAwIDEgNSA1eiIgZmlsbD0iI2NlMjAyNyIvPjxnIGZpbGw9IiNmZmYiPjx0ZXh0IGZvbnQtZmFtaWx5PSJQVFNhbnMtQm9sZCwgUFQgU2FucyIgZm9udC1zaXplPSI1OC4xNSIgZm9udC13ZWlnaHQ9IjcwMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNy43NyA1Mi4zOSkiPmg8L3RleHQ+PGNpcmNsZSBjeD0iNDkuOTEiIGN5PSI0NyIgcj0iNSIvPjwvZz48L3N2Zz4=); background-repeat: no-repeat; background-size: 60%; background-color: black; background-position-x: center; background-position-y: 65%; position: fixed; bottom: 20px; left: -15px; box-shadow: -2px 2px 9px #202020; transition: width 0.5s, height 0.5s; } #fButton { cursor: pointer; width: 2em; height: 2em; } #myFloatingButton p { color: white; display: block; text-align: center; margin: 0px; font-family: 'Roboto'; font-size: 18px; } #myFloatingButton:hover { width: 30px; height: 30px; left: 0; } `);