🏠 返回首頁 

Greasy Fork is available in English.

Steam to SteamDB Redirector

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

  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. (function() {
  12. 'use strict';
  13. // Функция для проверки доступности страницы
  14. function isPageUnavailable() {
  15. return document.title.includes("Ошибка веб-страницы") || document.body.innerText.includes("Данный товар недоступен в вашем регионе");
  16. }
  17. // Функция для перенаправления на SteamDB
  18. function redirectToSteamDB() {
  19. let appIdMatch = window.location.href.match(/app\/(\d+)/);
  20. if (appIdMatch) {
  21. let appId = appIdMatch[1];
  22. window.location.href = `https://steamdb.info/app/${appId}/`;
  23. }
  24. }
  25. // Проверяем доступность страницы и перенаправляем при необходимости
  26. if (isPageUnavailable()) {
  27. redirectToSteamDB();
  28. }
  29. // Обработчик кликов для открытия ссылок в новой вкладке при нажатии Ctrl+клик
  30. document.addEventListener('click', function(e) {
  31. if (e.ctrlKey) {
  32. let target = e.target;
  33. while (target && target.tagName !== 'A') {
  34. target = target.parentElement;
  35. }
  36. if (target && target.tagName === 'A') {
  37. window.open(target.href, '_blank');
  38. e.preventDefault();
  39. }
  40. }
  41. });
  42. // Обработчик для всех ссылок на странице
  43. document.querySelectorAll('a').forEach(function(link) {
  44. link.addEventListener('click', function(e) {
  45. if (e.ctrlKey) {
  46. window.open(link.href, '_blank');
  47. e.preventDefault();
  48. }
  49. });
  50. });
  51. })();