您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Tombol tambahan: kalkulator umur, auto reload, Hapus iklan
// ==UserScript== // @name XButton // @namespace http://tampermonkey.net/ // @version 1.0 // @description Tombol tambahan: kalkulator umur, auto reload, Hapus iklan // @author Khudhori // @match *://*/* // @grant none // ==/UserScript== (function() { 'use strict'; // Create the floating button (main icon) const floatingBtn = document.createElement('div'); floatingBtn.style.position = 'fixed'; floatingBtn.style.bottom = '10px'; floatingBtn.style.right = '10px'; floatingBtn.style.width = '48px'; floatingBtn.style.height = '48px'; floatingBtn.style.backgroundColor = 'transparent'; floatingBtn.style.borderRadius = '50%'; floatingBtn.style.overflow = 'hidden'; floatingBtn.style.zIndex = '9999'; floatingBtn.style.transition = 'transform 0.5s ease, box-shadow 0.5s ease'; floatingBtn.style.border = '3px solid #007bff'; floatingBtn.style.boxShadow = '0 0 10px rgba(0, 0, 0, 0.2)'; // img floating button const iconImg = document.createElement('img'); iconImg.src = 'https://lh3.googleusercontent.com/a/AGNmyxaEnKjzfKogUt2-V-11G5OAQMl0OZKBz7562IzJ=s96-c'; iconImg.style.width = '100%'; iconImg.style.height = '100%'; iconImg.style.objectFit = 'cover'; iconImg.style.borderRadius = '50%'; floatingBtn.appendChild(iconImg); document.body.appendChild(floatingBtn); // Create container for script buttons const btnContainer = document.createElement('div'); btnContainer.style.position = 'fixed'; btnContainer.style.bottom = '70px'; btnContainer.style.right = '10px'; btnContainer.style.display = 'none'; btnContainer.style.opacity = '0'; btnContainer.style.transition = 'opacity 0.2s ease, transform 0.2s ease'; btnContainer.style.transform = 'translateY(-50px)'; btnContainer.style.zIndex = '9999'; document.body.appendChild(btnContainer); // Function to create individual buttons function createScriptButton(text, callback) { const btn = document.createElement('button'); btn.innerHTML = text; btn.style.display = 'block'; btn.style.marginBottom = '7px'; btn.style.padding = '7px'; btn.style.backgroundColor = '#ffffff'; btn.style.color = '#333333'; btn.style.border = '1px solid #cccccc'; btn.style.borderRadius = '10px'; btn.style.cursor = 'pointer'; btn.style.fontFamily = 'Helvetica Neue, Arial, sans-serif'; btn.style.fontSize = '13px'; btn.style.fontWeight = '400'; btn.style.boxShadow = '0 2px 4px rgba(0, 0, 0, 0.1)'; btn.style.opacity = '0'; btn.style.transform = 'translateY(-20px)'; btn.style.transition = 'opacity 0.3s ease, transform 0.3s ease'; btn.onmouseover = () => { btn.style.boxShadow = '0 4px 8px rgba(0, 0, 0, 0.2)'; btn.style.transform = 'scale(1.05)'; }; btn.onmouseout = () => { btn.style.boxShadow = '0 6px 4px rgba(0, 0, 0, 0.1)'; btn.style.transform = 'scale(1)'; }; btn.onclick = callback; btnContainer.appendChild(btn); // Show the button with fade-in effect after a small delay setTimeout(() => { btn.style.opacity = '1'; btn.style.transform = 'translateY(0)'; }, 100); } // Toggle button container visibility animation floatingBtn.onclick = () => { if (btnContainer.style.display === 'none') { btnContainer.style.display = 'block'; setTimeout(() => { btnContainer.style.opacity = '1'; btnContainer.style.transform = 'translateY(0)'; }, 100); floatingBtn.style.transform = 'rotate(45deg) scale(1.2)'; floatingBtn.style.boxShadow = '0px 0px 20px rgba(0, 0, 0, 0.2)'; } else { btnContainer.style.opacity = '0'; btnContainer.style.transform = 'translateY(-20px)'; setTimeout(() => { btnContainer.style.display = 'none'; }, 300); floatingBtn.style.transform = 'rotate(0deg) scale(1)'; floatingBtn.style.boxShadow = '0px 0px 15px rgba(0, 0, 0, 0.1)'; } }; // Function to create a calculator popup function createCalculator() { const calcContainer = document.createElement('div'); calcContainer.style.position = 'fixed'; calcContainer.style.top = '50px'; calcContainer.style.right = '10px'; calcContainer.style.width = '300px'; calcContainer.style.padding = '10px'; calcContainer.style.backgroundColor = '#ffffff'; calcContainer.style.border = '1px solid #cccccc'; calcContainer.style.borderRadius = '12px'; calcContainer.style.boxShadow = '0 2px 4px rgba(0, 0, 0, 0.1)'; calcContainer.style.zIndex = '10000'; calcContainer.style.display = 'none'; calcContainer.style.opacity = '0'; calcContainer.style.transition = 'opacity 0.3s ease'; const calcHTML = ` <div style="margin-bottom: 10px;"> <input id="calc-display" type="text" readonly style="width: 100%; padding: 10px; font-size: 18px; text-align: right; border: 1px solid #cccccc; border-radius: 6px;"> </div> <div style="margin-bottom: 10px;"> <label for="birthdate">Tanggal Lahir:</label><br> <input id="birthdate-day" type="number" placeholder="Tanggal" style="width: 30%; margin-right: 5px; padding: 5px; border: 1px solid #cccccc; border-radius: 6px;"> <input id="birthdate-month" type="number" placeholder="Bulan" style="width: 30%; margin-right: 5px; padding: 5px; border: 1px solid #cccccc; border-radius: 6px;"> <input id="birthdate-year" type="number" placeholder="Tahun" style="width: 35%; padding: 5px; border: 1px solid #cccccc; border-radius: 6px;"> </div> <div style="margin-bottom: 10px;"> <label for="today-date">Tanggal Hari Ini:</label><br> <input id="today-day" type="number" placeholder="Tanggal" style="width: 30%; margin-right: 5px; padding: 5px; border: 1px solid #cccccc; border-radius: 6px;"> <input id="today-month" type="number" placeholder="Bulan" style="width: 30%; margin-right: 5px; padding: 5px; border: 1px solid #cccccc; border-radius: 6px;"> <input id="today-year" type="number" placeholder="Tahun" style="width: 35%; padding: 5px; border: 1px solid #cccccc; border-radius: 6px;"> </div> <div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px;"> <button id="calc-calculate" style="padding: 10px; background-color: #007bff; color: white; border: 1px solid #007bff; border-radius: 6px; grid-column: span 3;">Hitung Usia</button> <button id="calc-clear" style="padding: 10px; background-color: #f44336; color: white; border: 1px solid #f44336; border-radius: 6px;">C</button> <button id="calc-close" style="padding: 10px; background-color: #007bff; color: white; border: 1px solid #007bff; border-radius: 6px;">Tutup</button> </div> `; calcContainer.innerHTML = calcHTML; document.body.appendChild(calcContainer); // Calculator logic const display = document.getElementById('calc-display'); const clearBtn = document.getElementById('calc-clear'); const calculateBtn = document.getElementById('calc-calculate'); const closeBtn = document.getElementById('calc-close'); // Function to calculate age function calculateAge() { const dayOfBirth = parseInt(document.getElementById('birthdate-day').value, 10); const monthOfBirth = parseInt(document.getElementById('birthdate-month').value, 10); const yearOfBirth = parseInt(document.getElementById('birthdate-year').value, 10); const dayToday = parseInt(document.getElementById('today-day').value, 10); const monthToday = parseInt(document.getElementById('today-month').value, 10); const yearToday = parseInt(document.getElementById('today-year').value, 10); if (!isNaN(dayOfBirth) && !isNaN(monthOfBirth) && !isNaN(yearOfBirth) && !isNaN(dayToday) && !isNaN(monthToday) && !isNaN(yearToday)) { const birthDate = new Date(yearOfBirth, monthOfBirth - 1, dayOfBirth); const todayDate = new Date(yearToday, monthToday - 1, dayToday); let ageYears = todayDate.getFullYear() - birthDate.getFullYear(); let ageMonths = todayDate.getMonth() - birthDate.getMonth(); let ageDays = todayDate.getDate() - birthDate.getDate(); if (ageDays < 0) { ageMonths--; ageDays += new Date(todayDate.getFullYear(), todayDate.getMonth(), 0).getDate(); } if (ageMonths < 0) { ageYears--; ageMonths += 12; } display.value = `Usia: ${ageYears} tahun, ${ageMonths} bulan, ${ageDays} hari`; } else { display.value = 'Masukkan tanggal yang valid'; } } // Button click handlers clearBtn.addEventListener('click', () => { display.value = ''; // Clear display document.getElementById('birthdate-day').value = ''; document.getElementById('birthdate-month').value = ''; document.getElementById('birthdate-year').value = ''; document.getElementById('today-day').value = ''; document.getElementById('today-month').value = ''; document.getElementById('today-year').value = ''; }); calculateBtn.addEventListener('click', calculateAge); closeBtn.addEventListener('click', () => { calcContainer.style.opacity = '0'; setTimeout(() => { calcContainer.style.display = 'none'; }, 300); }); // Prevent closing the calculator when clicking inside it calcContainer.addEventListener('click', (event) => { event.stopPropagation(); }); return calcContainer; } // Function to create an auto-reload popup with time setting function createAutoReloadPopup() { const reloadContainer = document.createElement('div'); reloadContainer.style.position = 'fixed'; reloadContainer.style.top = '50px'; reloadContainer.style.right = '10px'; reloadContainer.style.width = '300px'; reloadContainer.style.padding = '10px'; reloadContainer.style.backgroundColor = '#ffffff'; reloadContainer.style.border = '1px solid #cccccc'; reloadContainer.style.borderRadius = '12px'; reloadContainer.style.boxShadow = '0 2px 4px rgba(0, 0, 0, 0.1)'; reloadContainer.style.zIndex = '10000'; reloadContainer.style.display = 'none'; reloadContainer.style.opacity = '0'; reloadContainer.style.transition = 'opacity 0.3s ease'; const reloadHTML = ` <div style="margin-bottom: 10px;"> <label for="reload-interval">Interval Reload (menit):</label><br> <input id="reload-interval" type="number" min="1" placeholder="Menit" style="width: 100%; padding: 5px; border: 1px solid #cccccc; border-radius: 6px;"> </div> <div style="display: grid; grid-template-columns: repeat(2, 1fr); gap: 5px;"> <button id="reload-start" style="padding: 10px; background-color: #007bff; color: white; border: 1px solid #007bff; border-radius: 6px; grid-column: span 1;">Mulai</button> <button id="reload-stop" style="padding: 10px; background-color: #f44336; color: white; border: 1px solid #f44336; border-radius: 6px; grid-column: span 1;">Berhenti</button> <button id="reload-close" style="padding: 10px; background-color: #007bff; color: white; border: 1px solid #007bff; border-radius: 6px; grid-column: span 2;">Tutup</button> </div> `; reloadContainer.innerHTML = reloadHTML; document.body.appendChild(reloadContainer); // Auto-reload logic let reloadInterval = null; const intervalInput = document.getElementById('reload-interval'); const startBtn = document.getElementById('reload-start'); const stopBtn = document.getElementById('reload-stop'); const closeBtn = document.getElementById('reload-close'); startBtn.addEventListener('click', () => { const minutes = parseInt(intervalInput.value, 10); if (!isNaN(minutes) && minutes > 0) { if (reloadInterval !== null) clearInterval(reloadInterval); reloadInterval = setInterval(() => { location.reload(); }, minutes * 60 * 1000); // Convert minutes to milliseconds } }); stopBtn.addEventListener('click', () => { if (reloadInterval !== null) clearInterval(reloadInterval); }); closeBtn.addEventListener('click', () => { reloadContainer.style.opacity = '0'; // Fade out reload popup setTimeout(() => { reloadContainer.style.display = 'none'; }, 300); }); // Prevent closing the reload popup when clicking inside it reloadContainer.addEventListener('click', (event) => { event.stopPropagation(); }); return reloadContainer; } // start tombol // Tombol Kalkulator Umur createScriptButton('Kalkulator Umur', () => { const calcContainer = createCalculator(); calcContainer.style.display = 'block'; setTimeout(() => { calcContainer.style.opacity = '1'; }, 100); }); // Tombol auto reload createScriptButton('Auto Reload', () => { const reloadContainer = createAutoReloadPopup(); reloadContainer.style.display = 'block'; setTimeout(() => { reloadContainer.style.opacity = '1'; }, 100); }); // Create the ad removal button createScriptButton('Hapus Iklan', () => { // Function to hide ads const hideAds = () => { const adSelectors = [ '[id^="ad"]', '[class*="ad"]', '[id*="ad"]', '[class*="advertisement"]', '[id^="banner"]', '[class*="banner"]', '[id*="banner"]', '[class*="promo"]', '[id^="promo"]', '[class*="sponsored"]', '[id*="sponsored"]', '[class*="ads"]', '[id*="ads"]', '[id*="popup"]', '[class*="popup"]', '[class*="overlay"]', '[id*="overlay"]' ]; adSelectors.forEach(selector => { const ads = document.querySelectorAll(selector); ads.forEach(ad => ad.style.display = 'none'); }); }; // Function to block popups on link click const blockPopups = () => { document.querySelectorAll('a').forEach(link => { link.addEventListener('click', (event) => { const href = link.getAttribute('href'); if (href && (href.includes('popup') || href.includes('ad') || href.includes('advertisement'))) { event.preventDefault(); console.log('Blocked popup ad link:', href); } }); }); }; // Execute both functions hideAds(); blockPopups(); }); // end tombol // Close both containers when 'Esc' key is pressed document.addEventListener('keydown', (event) => { if (event.key === 'Escape') { // Close calculator if visible const calcContainer = document.querySelector('div[style*="top: 50px"][style*="right: 10px"]'); if (calcContainer) { calcContainer.style.opacity = '0'; setTimeout(() => { calcContainer.style.display = 'none'; }, 300); } // Close reload popup if visible const reloadContainer = document.querySelector('div[style*="top: 50px"][style*="right: 10px"]'); if (reloadContainer) { reloadContainer.style.opacity = '0'; setTimeout(() => { reloadContainer.style.display = 'none'; }, 300); } // Close button container if visible if (btnContainer.style.display === 'block') { btnContainer.style.opacity = '0'; btnContainer.style.transform = 'translateY(-20px)'; setTimeout(() => { btnContainer.style.display = 'none'; }, 300); floatingBtn.style.transform = 'rotate(0deg) scale(1)'; floatingBtn.style.boxShadow = '0px 0px 15px rgba(0, 0, 0, 0.1)'; } } }); })();