您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Execute Chrome extensions by entering their URL
- // ==UserScript==
- // @name Chrome Extension Executor
- // @namespace http://your.namespace.com
- // @version 1.0
- // @description Execute Chrome extensions by entering their URL
- // @author Your Name
- // @match *://*/*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- // Default colors for GUI
- var backgroundColor = 'rgba(0, 0, 0, 0.8)';
- var textColor = '#fff';
- var buttonColor = '#d9534f';
- // Create the HTML GUI for the extension executor
- var guiHTML = `
- <style>
- #executor-panel {
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- background-color: ${backgroundColor};
- z-index: 9999;
- overflow: hidden;
- padding: 20px;
- }
- #executor-content {
- display: flex;
- height: 100%;
- transition: transform 0.3s ease;
- overflow-y: auto;
- scrollbar-color: ${buttonColor} ${backgroundColor};
- }
- #executor-sidebar {
- width: 200px;
- background-color: rgba(0, 0, 0, 0.5);
- color: #fff;
- padding: 20px;
- overflow-y: auto;
- scrollbar-color: ${buttonColor} ${backgroundColor};
- }
- .executor-option {
- background-color: ${buttonColor};
- border: none;
- padding: 15px 30px;
- cursor: pointer;
- width: 100%;
- border-radius: 10px;
- margin-bottom: 15px;
- color: ${textColor};
- font-size: 16px;
- transition: background-color 0.3s ease;
- }
- .executor-option:hover {
- background-color: #c9302c;
- }
- #executor-main {
- flex: 1;
- background-color: rgba(255, 255, 255, 0.1);
- backdrop-filter: blur(10px);
- padding: 20px;
- overflow-y: auto;
- scrollbar-color: ${buttonColor} ${backgroundColor};
- display: flex;
- flex-direction: column;
- align-items: center;
- }
- #executor-title {
- margin-bottom: 20px;
- text-align: center;
- color: ${textColor};
- font-size: 24px;
- }
- #extension-executor, #html-executor, #html-logs {
- width: 80%;
- margin-bottom: 15px;
- }
- #extension-url, #code-editor, #console-log {
- width: 100%;
- min-height: 200px;
- padding: 10px;
- border: 1px solid ${buttonColor};
- border-radius: 5px;
- color: ${textColor};
- background-color: rgba(255, 255, 255, 0.1);
- transition: border-color 0.3s ease;
- resize: vertical;
- overflow: auto;
- }
- #extension-url:focus, #code-editor:focus {
- border-color: #5bc0de;
- }
- #get-extension-button, #execute-button {
- background-color: ${buttonColor};
- border: none;
- padding: 10px 20px;
- cursor: pointer;
- border-radius: 5px;
- color: ${textColor};
- font-size: 16px;
- transition: background-color 0.3s ease;
- }
- #get-extension-button:hover, #execute-button:hover {
- background-color: #c9302c;
- }
- ::-webkit-scrollbar {
- width: 10px;
- }
- ::-webkit-scrollbar-track {
- background: ${backgroundColor};
- }
- ::-webkit-scrollbar-thumb {
- background: ${buttonColor};
- border-radius: 5px;
- }
- ::-webkit-scrollbar-thumb:hover {
- background: #c9302c;
- }
- </style>
- <div id="executor-panel" style="display: none;">
- <div id="executor-content">
- <div id="executor-sidebar">
- <h3 style="margin-bottom: 20px; color: #f00; font-size: 20px; text-transform: uppercase;">Options</h3>
- <button class="executor-option" data-target="html-executor">HTML Executor</button>
- <button class="executor-option" data-target="extension-executor">Extension Executor</button>
- <button class="executor-option" data-target="html-logs">HTML Logs</button>
- <button class="executor-option" data-target="settings">Settings</button>
- </div>
- <div id="executor-main">
- <h2 id="executor-title">Choose an option</h2>
- <div id="html-executor" style="display: none;">
- <textarea id="code-editor"></textarea>
- <button id="execute-button">Execute Script</button>
- </div>
- <div id="extension-executor" style="display: none;">
- <input type="text" id="extension-url" placeholder="Enter extension URL">
- <button id="get-extension-button">Get Extension Source</button>
- </div>
- <div id="html-logs" style="display: none;">
- <textarea id="console-log" readonly></textarea>
- </div>
- <div id="settings" style="display: none;">
- <h3>Change GUI Colors</h3>
- <label for="background-color">Background Color:</label>
- <input type="color" id="background-color" value="${backgroundColor}">
- <label for="text-color">Text Color:</label>
- <input type="color" id="text-color" value="${textColor}">
- <label for="button-color">Button Color:</label>
- <input type="color" id="button-color" value="${buttonColor}">
- </div>
- </div>
- </div>
- </div>
- `;
- // Inject the HTML GUI into the document body
- document.body.insertAdjacentHTML('beforeend', guiHTML);
- // Add event listener to toggle the GUI visibility
- document.addEventListener('keydown', function(event) {
- if (event.ctrlKey && event.key === 'm') {
- var executorPanel = document.getElementById('executor-panel');
- executorPanel.style.display = (executorPanel.style.display === 'none') ? 'block' : 'none';
- }
- });
- // Add event listener to handle option clicks
- document.querySelectorAll('.executor-option').forEach(function(option) {
- option.addEventListener('click', function(event) {
- event.preventDefault();
- var targetId = this.getAttribute('data-target');
- showOption(targetId);
- });
- });
- // Function to show the selected option
- function showOption(targetId) {
- document.querySelectorAll('.executor-option').forEach(function(option) {
- option.classList.remove('active');
- });
- document.getElementById('executor-title').textContent = targetId.charAt(0).toUpperCase() + targetId.slice(1);
- document.querySelectorAll('#executor-main > div').forEach(function(option) {
- option.style.display = 'none';
- });
- document.getElementById(targetId).style.display = 'flex';
- document.querySelector('.executor-option[data-target="' + targetId + '"]').classList.add('active');
- }
- // Add event listener to execute script
- document.getElementById('execute-button').addEventListener('click', function() {
- var code = document.getElementById('code-editor').value;
- executeScript(code);
- });
- // Function to execute the entered script
- function executeScript(code) {
- try {
- eval(code);
- logMessage('Successfully executed!', 'green');
- } catch (error) {
- console.error('Script execution error:', error);
- logMessage('Execution failed: ' + error, 'red');
- }
- }
- // Function to log messages with color
- function logMessage(message, color) {
- var consoleLog = document.getElementById('console-log');
- consoleLog.value += message + '\n';
- consoleLog.scrollTop = consoleLog.scrollHeight; // Auto-scroll to the bottom
- consoleLog.style.color = color;
- }
- // Capture console.log messages and display them in HTML Logs
- var oldLog = console.log;
- console.log = function(message) {
- oldLog.apply(console, arguments);
- logMessage(message, 'white');
- };
- // Capture alerts and display them in HTML Logs
- window.alert = function(message) {
- console.log('Alert:', message);
- window.originalAlert(message); // Call original alert function to display alert
- };
- // Save reference to the original alert function
- window.originalAlert = window.alert;
- // Add event listener to get extension source code
- document.getElementById('get-extension-button').addEventListener('click', function() {
- var extensionUrl = document.getElementById('extension-url').value;
- if (extensionUrl) {
- getExtensionSource(extensionUrl);
- } else {
- alert('Please enter an extension URL.');
- }
- });
- // Function to get extension source code
- function getExtensionSource(extensionUrl) {
- fetch(extensionUrl)
- .then(response => response.text())
- .then(data => {
- document.getElementById('code-editor').value = data;
- logMessage('Extension source code fetched successfully!', 'green');
- })
- .catch(error => {
- console.error('Error fetching extension source:', error);
- logMessage('Error fetching extension source: ' + error, 'red');
- });
- }
- // Add event listener to change GUI colors
- document.getElementById('background-color').addEventListener('input', function() {
- backgroundColor = this.value;
- document.getElementById('executor-panel').style.backgroundColor = backgroundColor;
- });
- document.getElementById('text-color').addEventListener('input', function() {
- textColor = this.value;
- var elements = document.querySelectorAll('#executor-panel, #executor-title, #executor-main, #code-editor, #console-log');
- elements.forEach(function(element) {
- element.style.color = textColor;
- });
- });
- document.getElementById('button-color').addEventListener('input', function() {
- buttonColor = this.value;
- var buttons = document.querySelectorAll('.executor-option, #execute-button, #get-extension-button');
- buttons.forEach(function(button) {
- button.style.backgroundColor = buttonColor;
- });
- });
- })();