Greasemonkey / Tampermonkey UserScript для внесения изменений в путь URL - PullRequest
0 голосов
/ 15 января 2020

Мне нужен скрипт для изменения некоторых параметров в URL и перенаправления страницы. например:

изменить это:

http://cloud.somesite.fr/somepath

на это:

http://account.somesite.com/somepath

Легко изменить ".fr" на ".com". Но проблема в том, что я не могу понять, как выбрать этот «облачный» параметр. Это ни протокол, ни домен. обычно это часть URL "www", но на некоторых сайтах есть специальный адрес "www" после "http: //", и мне нужно изменить его.

Я пробовал в качестве основы и экспериментируйте, но это не сработало так, как я хотел:

// ==UserScript==
// @name        my redirect (based on _Redirect from one domain to another)
// @match       *://somesite.ft/*
// @include       https://*.somesite.fr/*
// @run-at      document-start
// @grant       none
// ==/UserScript==
var oldUrlPath  = location.pathname;
if ( ! oldUrlPath.includes ("somesite.fr") ) 
{

var newDomain   = "somesite.com";
var newURL      = location.protocol + "//"
                + newDomain                 //-- location.host
                + location.pathname
                + location.search
                + location.hash
                ;
/*-- replace() puts the good page in the history instead of the
    bad page.
*/
location.replace (newURL);
}

Здесь много похожих сценариев (я выполнил поиск), но я не могу найти один для моего конкретного случая : выбор части "www", когда вместо "www".

есть другая строка

1 Ответ

0 голосов
/ 15 января 2020

На основании предоставленной информации:

// ==UserScript==
// @name        my redirect (based on _Redirect from one domain to another)
// @match       *://*.somesite.fr/*
// @run-at      document-start
// @grant       none
// ==/UserScript==


// example http://cloud.somesite.fr/somepath
// location.hostname is cloud.somesite.fr

if (location.hostname.startsWith('cloud.')) {

  window.stop(); // stop loading the window
  location.hostname = 'account.somesite.com'; // change location.hostname to the desired one, path & hash stays the same
} 
...