您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Redirect directly to target page avoiding Yandex Turbo
当前为
- // ==UserScript==
- // @name Avoid Yandex Turbo
- // @name:ru Обход Яндекс Турбо
- // @description Redirect directly to target page avoiding Yandex Turbo
- // @description:ru Переадресация на целевую страницу в обход Яндекс Турбо
- // @author Autapomorph
- // @version 2.0.0
- // @run-at document_start
- // @match *://yandex.ru/*
- // @match *://*.turbopages.org/*
- // @supportURL https://github.com/Autapomorph/userscripts/issues
- // @license MIT
- // @namespace https://greasyfork.org/users/689919
- // ==/UserScript==
- (function () {
- function redirectWithTurboOverlay() {
- var titleHostActive = $('.turbo-overlay__title-host_active');
- if (!titleHostActive || !titleHostActive.length) {
- return;
- }
- var titleHostActiveText = titleHostActive[0].textContent;
- if (!titleHostActiveText.length) {
- return;
- }
- var hostLinks = $('a[data-sc-host]');
- for (var i = 0; i < hostLinks.length; i += 1) {
- var hostLink = $(hostLinks[i]);
- var dataCounter;
- try {
- dataCounter = JSON.parse(hostLink.attr('data-counter'));
- } catch (error) {
- return;
- }
- if (dataCounter.find(e => e.indexOf(titleHostActiveText) > -1)) {
- var redirect;
- if (dataCounter[0] === 'b') {
- redirect = dataCounter[1];
- } else if (dataCounter[0] === 'w') {
- redirect = dataCounter[3];
- } else {
- return;
- }
- top.location.replace(redirect);
- }
- }
- $('a[data-sc-host]').each(function () {
- var dataCounterAttr = $(this).attr('data-counter');
- if (!dataCounterAttr) return;
- var dataCounter = JSON.parse(dataCounterAttr);
- if (dataCounter.find(e => e.indexOf(titleHostActiveText) > -1)) {
- var redirect;
- if (dataCounter[0] === 'b') {
- redirect = dataCounter[1];
- } else if (dataCounter[0] === 'w') {
- redirect = dataCounter[3];
- }
- top.location.replace(redirect);
- }
- });
- }
- function redirectWithURL() {
- var urlPathname = top.location.pathname;
- var turboIndex = urlPathname.indexOf('/turbo/');
- var delimeterIndex = urlPathname.search(/\/(s|h)/);
- var delimeterLength = 2;
- if (delimeterIndex < 0) {
- return;
- }
- var host =
- turboIndex === -1
- ? urlPathname.substring(1, delimeterIndex)
- : urlPathname.substring(turboIndex + '/turbo/'.length, delimeterIndex);
- var pathName = urlPathname.substring(delimeterIndex + delimeterLength);
- top.location.replace('//' + host + pathName);
- }
- var urlPathname = top.location.pathname;
- if (/\.*\/(s|h)\/.*/.test(urlPathname)) {
- redirectWithTurboOverlay();
- redirectWithURL();
- }
- })();