您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
This replaces your profile picture on Game Jolt with a GIF
// ==UserScript== // @name GameGIF // @namespace http://tampermonkey.net/ // @version 1.3 // @icon https://s.gjcdn.net/img/favicon.png // @description This replaces your profile picture on Game Jolt with a GIF // @author LeashedSkies // @match https://gamejolt.com/* // @match https://*.gamejolt.com/* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // Define your current profile picture URL and the GIF URL const currentProfilePicSrc = 'https://m.gjcdn.net/user-avatar/200/8034218-crop36_0_615_579-eiseypvx-v4.webp'; // Change this to your profile picture URL, you can use inspect element, or any other tool, might be hard to do on Mobile. const gifUrl = 'https://c.tenor.com/OhUxPkhdcgAAAAAd/tenor.gif'; // Your GIF URL, Go to a GIF, Hold tap or Right click, click Copy Image Link, paste in, .GIF only. // Function to replace the profile picture on the profile page function replaceProfilePicture() { const avatarElement = document.querySelector(`img[src="${currentProfilePicSrc}"]`); if (avatarElement) { avatarElement.src = gifUrl; } } // Function to replace profile pictures in posts function replacePostProfilePictures() { const postLinks = document.querySelectorAll('a[href^="https://gamejolt.com/p/"]'); postLinks.forEach((link) => { const postAvatarWrapper = link.querySelector('.user-avatar-img._img'); // Select the wrapper if (postAvatarWrapper) { const postAvatar = postAvatarWrapper.querySelector('img'); if (postAvatar && postAvatar.src === currentProfilePicSrc) { postAvatarWrapper.innerHTML = ` <img src="${gifUrl}" class="img-responsive" style="border-radius: 50%; width: 50px; height: 50px; object-fit: cover;" alt=""> `; } } }); } // Function to replace profile pictures in comments function replaceCommentProfilePictures() { const commentAvatars = document.querySelectorAll('.user-avatar-img img'); // Adjust this selector if needed commentAvatars.forEach((avatarElement) => { if (avatarElement.src === currentProfilePicSrc) { avatarElement.src = gifUrl; avatarElement.style.borderRadius = '100%'; // Circular avatarElement.style.width = '50px'; // Comment width avatarElement.style.height = '50px'; // Comment height avatarElement.style.objectFit = 'cover'; // Ensure proper fit } }); } // Function to replace the top right icon's profile picture function replaceTopRightProfilePicture() { const topRightAvatar = document.querySelector('.user-avatar-img._img img'); if (topRightAvatar && topRightAvatar.src === currentProfilePicSrc) { topRightAvatar.src = gifUrl; topRightAvatar.style.borderRadius = '50%'; // Circular topRightAvatar.style.width = '100px'; // Adjust width to match requirements topRightAvatar.style.height = '100px'; // Adjust height to match requirements topRightAvatar.style.objectFit = 'cover'; // Ensure proper fit } } // Use MutationObserver to watch for changes in the DOM const observer = new MutationObserver(() => { replaceProfilePicture(); replacePostProfilePictures(); replaceCommentProfilePictures(); replaceTopRightProfilePicture(); // Add top right icon replacement }); // Start observing the body for changes observer.observe(document.body, { childList: true, subtree: true }); // Initial calls to replace the profile pictures replaceProfilePicture(); replacePostProfilePictures(); replaceCommentProfilePictures(); replaceTopRightProfilePicture(); // Initial call for top right icon replacement })();