您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Continuously scans for the "Take part in this study" button and clones it to the top-right corner
// ==UserScript== // @name Prolific add "Take part in this study" Button to top of page // @namespace http://tampermonkey.net/ // @version 0.3 // @description Continuously scans for the "Take part in this study" button and clones it to the top-right corner // @author You // @match https://app.prolific.com/studies* // @grant none // ==/UserScript== (function() { 'use strict'; // Function to create and position the cloned button function addClonedButton(originalButton) { // If the cloned button already exists, do nothing if (document.querySelector('#cloned-study-button')) return; // Clone the original button const clonedButton = originalButton.cloneNode(true); clonedButton.id = 'cloned-study-button'; // Add an ID to the cloned button to prevent duplicates // Style the cloned button to overlay at the top-right clonedButton.style.position = 'fixed'; clonedButton.style.top = '70px'; clonedButton.style.right = '10px'; clonedButton.style.zIndex = '1000'; // Ensure it's above other elements clonedButton.style.backgroundColor = '#007bff'; // Optionally style the button clonedButton.style.padding = '10px'; clonedButton.style.borderRadius = '5px'; clonedButton.style.cursor = 'pointer'; clonedButton.style.boxShadow = '0 2px 10px rgba(0, 0, 0, 0.1)'; // Add a subtle shadow // Append the cloned button to the body document.body.appendChild(clonedButton); // Ensure clicking the cloned button triggers the original button's click event clonedButton.addEventListener('click', function() { originalButton.click(); // Trigger the original button's click }); console.log("Cloned 'Take part in this study' button added."); } // Function to check for the button and clone it if found function checkForButton() { const originalButton = document.querySelector('.reserve-study-button[data-testid="reserve"]'); // If the button is found, clone it and add it to the top-right if (originalButton) { addClonedButton(originalButton); } } // Initial check on page load checkForButton(); // Continuously check for the button at intervals (fallback for observer) setInterval(checkForButton, 3000); // Check every 3 seconds // MutationObserver to detect changes to the DOM const observer = new MutationObserver(() => { checkForButton(); }); // Start observing changes to the body observer.observe(document.body, { childList: true, subtree: true }); })();