Steam to SteamDB Redirector

Автоматическое перенаправление с недоступных страниц Steam на SteamDB и изменение поведения ссылок для открытия в новой вкладке при нажатии Ctrl+клик.

目前为 2024-09-26 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Steam to SteamDB Redirector
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description Автоматическое перенаправление с недоступных страниц Steam на SteamDB и изменение поведения ссылок для открытия в новой вкладке при нажатии Ctrl+клик.
  6. // @author GodinRaider
  7. // @match https://store.steampowered.com/*
  8. // @grant none
  9. // @license MIT
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. // Функция для проверки доступности страницы
  16. function isPageUnavailable() {
  17. return document.title.includes("Ошибка веб-страницы") || document.body.innerText.includes("Данный товар недоступен в вашем регионе");
  18. }
  19.  
  20. // Функция для перенаправления на SteamDB
  21. function redirectToSteamDB() {
  22. let appIdMatch = window.location.href.match(/app\/(\d+)/);
  23. if (appIdMatch) {
  24. let appId = appIdMatch[1];
  25. window.location.href = `https://steamdb.info/app/${appId}/`;
  26. }
  27. }
  28.  
  29. // Проверяем доступность страницы и перенаправляем при необходимости
  30. if (isPageUnavailable()) {
  31. redirectToSteamDB();
  32. }
  33.  
  34. // Обработчик кликов для открытия ссылок в новой вкладке при нажатии Ctrl+клик
  35. document.addEventListener('click', function(e) {
  36. if (e.ctrlKey) {
  37. let target = e.target;
  38. while (target && target.tagName !== 'A') {
  39. target = target.parentElement;
  40. }
  41. if (target && target.tagName === 'A') {
  42. window.open(target.href, '_blank');
  43. e.preventDefault();
  44. }
  45. }
  46. });
  47.  
  48. // Обработчик для всех ссылок на странице
  49. document.querySelectorAll('a').forEach(function(link) {
  50. link.addEventListener('click', function(e) {
  51. if (e.ctrlKey) {
  52. window.open(link.href, '_blank');
  53. e.preventDefault();
  54. }
  55. });
  56. });
  57.  
  58. })();