您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Kak je ya vas nenaviju dermoedi
// ==UserScript== // @name Remove VK phone confirmation popup // @namespace http://tampermonkey.net/ // @version 3.0.0 // @description Kak je ya vas nenaviju dermoedi // @author Pavel Durov // @match https://*.vk.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=vk.com // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; const POPUP_CLASS = "vkuiPopoutWrapper"; const VALIDATION_CLASS_PREFIX = "CheckValidationPhone"; function removeElement(element) { if (element && element.parentNode) { element.parentNode.removeChild(element); } } function clearBodyStyles() { document.body.removeAttribute("style"); } function containsValidationClass(node) { if (node.nodeType === 1 && node.classList) { for (const className of node.classList) { if (className.startsWith(VALIDATION_CLASS_PREFIX)) { return true; } } } for (const childNode of node.childNodes) { if (containsValidationClass(childNode)) { return true; } } return false; } function handleChanges(mutationsList) { for (const mutation of mutationsList) { if (mutation.type === "childList") { for (const addedNode of mutation.addedNodes) { if (addedNode.nodeType === 1 && addedNode.classList.contains(POPUP_CLASS)) { if (containsValidationClass(addedNode)) { console.debug("VK PHONE CONFIRM:", "Remove element", `"${addedNode.className}"`) removeElement(addedNode); clearBodyStyles(); } } } } } } const observer = new MutationObserver(handleChanges); const config = { childList: true, subtree: true }; observer.observe(document.body, config); })();