您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
在用户打开掘金页面后, 自动签到, 每天最多签到一次. 基于iframe实现, 不用担心接口被禁. 只支持 Chrome80+ 浏览器.
当前为
// ==UserScript== // @name [掘金]自动签到 // @namespace http://tampermonkey.net/ // @version 0.4.0 // @author sutie // @description 在用户打开掘金页面后, 自动签到, 每天最多签到一次. 基于iframe实现, 不用担心接口被禁. 只支持 Chrome80+ 浏览器. // @license MIT // @icon https://lf3-cdn-tos.bytescm.com/obj/static/xitu_juejin_web//static/favicons/favicon-32x32.png // @match https://juejin.cn/* // @grant none // @run-at document-idle // @noframes // ==/UserScript== (function() { "use strict"; const NAMESPACE = "juejin-auto-check"; const LOCALSTORAGE_KEY = "tampermonkey-" + NAMESPACE; function getDate() { const date = new Date(); const year = date.getFullYear(); const month = String(date.getMonth() + 1).padStart(2, "0"); const day = String(date.getDate()).padStart(2, "0"); return `${year}-${month}-${day}`; } function createIframe(id) { const iframe = document.createElement("iframe"); iframe.id = id; iframe.style.position = "fixed"; iframe.style.top = "120px"; iframe.style.right = "24px"; iframe.style.width = "375px"; iframe.style.height = "850px"; iframe.style.zIndex = "1000"; iframe.src = "https://juejin.cn/user/center/signin"; return iframe; } function removeIframe(id) { const ifrm = document.getElementById(id); if (ifrm) { document.body.removeChild(ifrm); } } function signin() { const id = `iframe-${Math.ceil(Math.random() * 100)}`; const iframe = createIframe(id); document.body.prepend(iframe); iframe.onload = () => { const dialog = document.getElementById(id); if (dialog && dialog.contentDocument) { const btn = dialog.contentDocument.querySelector(".signin.btn"); if (btn) { btn.click(); } const timer = setTimeout(() => { clearTimeout(timer); removeIframe(id); }, 1e3); } }; } function main() { const lastestDay = localStorage.getItem(LOCALSTORAGE_KEY); const today = getDate(); if (!lastestDay || lastestDay !== today) { try { signin(); localStorage.setItem(LOCALSTORAGE_KEY, today); } catch (error) { localStorage.removeItem(LOCALSTORAGE_KEY); } } } main(); })();