点击中键模拟鼠标右键点击,按“PgDn”键再按“Enter”键,左键点击跳转到 SteamCardExchange 页面
// ==UserScript==
// @name Steam Card Exchange Redirect (中键点击模拟右键和键盘操作)
// @namespace http://tampermonkey.net/
// @version 0.3
// @description 点击中键模拟鼠标右键点击,按“PgDn”键再按“Enter”键,左键点击跳转到 SteamCardExchange 页面
// @author 你
// @match https://store.steampowered.com/app/*
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
// 等待页面加载完毕
window.addEventListener('load', function() {
// 获取游戏页面的App ID
var steamAppUrl = window.location.href;
var regex = /\/app\/(\d+)\//; // 正则表达式匹配 App ID
var match = steamAppUrl.match(regex);
if (match && match[1]) {
var appId = match[1]; // 获取 App ID
// 创建超链接元素
var link = document.createElement('a');
link.textContent = '在 SteamCardExchange 上查看';
// 添加按钮样式
link.style.padding = '10px 20px';
link.style.fontSize = '14px';
link.style.background = 'rgba(103, 193, 245, 0.2)'; // 背景颜色
link.style.color = '#67c1f5'; // 字体颜色
link.style.textDecoration = 'none';
link.style.borderRadius = '3px'; // 边角半径
link.style.display = 'inline-flex';
link.style.alignItems = 'center';
link.style.marginTop = '20px';
link.style.border = 'none';
link.style.cursor = 'pointer';
link.style.fontWeight = '600';
// 悬停时的样式变化
link.addEventListener('mouseenter', () => {
link.style.backgroundColor = '#6f99e6'; // 鼠标悬停时背景变色
});
link.addEventListener('mouseleave', () => {
link.style.backgroundColor = 'rgba(103, 193, 245, 0.2)'; // 恢复原来的背景色
});
// 添加图标(根据提供的图标样式)
var icon = document.createElement('i');
icon.className = 'ico16'; // 这里假设你会添加相应的 CSS 样式来显示图标
icon.style.background = 'url("https://www.steamcardexchange.net/favicon.ico") 0 0 / contain no-repeat';
icon.style.width = '16px';
icon.style.height = '16px';
icon.style.marginRight = '8px'; // 图标和文字之间的间隔
link.prepend(icon); // 将图标放在文本前面
// 获取 SteamCardExchange 的 URL
var steamCardExchangeUrl = 'https://www.steamcardexchange.net/index.php?gamepage-appid-' + appId;
// 设置超链接的 href
link.href = steamCardExchangeUrl;
// 当点击超链接时,直接跳转到 SteamCardExchange 页面
link.addEventListener('click', function(event) {
window.location.href = steamCardExchangeUrl; // 当前页面直接跳转
});
// 当鼠标滚轮点击(中键点击)时,模拟鼠标右键点击、按PgDn键和Enter键
link.addEventListener('mousedown', function(event) {
// 检查鼠标是否是滚轮点击(中键点击,button == 1)
if (event.button === 1) {
// 模拟右键点击
var rightClickEvent = new MouseEvent('contextmenu', {
bubbles: true,
cancelable: true,
button: 2
});
link.dispatchEvent(rightClickEvent); // 触发右键点击事件
// 模拟按“PgDn”键
var pgDnEvent = new KeyboardEvent('keydown', {
key: 'PageDown',
keyCode: 34,
code: 'PageDown',
bubbles: true,
cancelable: true
});
document.body.dispatchEvent(pgDnEvent); // 触发“PgDn”键事件
// 模拟按“Enter”键
var enterEvent = new KeyboardEvent('keydown', {
key: 'Enter',
keyCode: 13,
code: 'Enter',
bubbles: true,
cancelable: true
});
document.body.dispatchEvent(enterEvent); // 触发“Enter”键事件
}
});
// 将超链接插入到页面中
var appHub = document.querySelector('.apphub_AppName'); // 获取游戏标题元素
if (appHub) {
appHub.parentNode.appendChild(link); // 将超链接添加到标题下方
}
} else {
console.log('无法从当前页面提取 App ID');
}
});
})();