Как запрограммировать скрипт, который меняет URL

Я хочу создать скрипт tampermonkey, который в основном меняет URL-адрес страницы. Что я хочу сделать, так это посмотреть, есть ли в URL-адресе «youtube.com», а если нет, то он должен добавить /youtube.com к URL-адресу.

Примером этого является:

Стартовый сайт: www.website.com/watch8dzjad8

Измененный сайт: www.website.com/youtube.com/watch8dzjad8

Если это поможет, то сценарий должен быть завершен в tampermonkey, так что на определенном веб-сайте он будет сканировать ссылку и добавлять /youtube.com, если он не может ее найти, поскольку иначе он не будет работать и это действительно помогло бы мне не копировать и вставлять /youtube.com по 10 раз в день, а также научиться работать с URL-адресами в JavaScript. заранее спасибо


person Daniel Rachfał    schedule 24.02.2015    source источник


Ответы (2)


if( !location.host.match(/youtube.com/) )
   location= "/youtube.com"+ location.pathname

Но вместо этого вы должны ограничить это поведение конкретным сайтом, а не только всеми доменами, кроме youtube, например:

if( location.href.match(/website.com\/watch/) )
   location= "/youtube.com"+ location.pathname

Пояснения

location.href.match(/website.com/watch/)

  • location.host — это домен страницы (www.website.com).
  • location.href – это полный URL-адрес страницы (http://www.website.com/watch8dzjad8)

  • match проверяет, соответствует ли строка заданному шаблону

location= "/youtube.com"+ location.pathname

  • установка местоположения подразумевает открытие данного URL
  • location.pathname указывает путь URL-адреса (/watch8dzjad8)

Таким образом, если URL (http://www.website.com/watch8dzjad8) посещаемой страницы содержит строку «website.com/watch», затем откройте «/youtube.com» + «/watch8dzjad8».

Поскольку домен тот же, достаточно относительного URL-адреса, браузер знает, что это тот же домен, что и текущая страница.

https://developer.mozilla.org/en-US/docs/Web/API/Window/location https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match

person Gaël    schedule 24.02.2015
comment
это работало изумительно, но работало слишком хорошо и постоянно добавляло /youtube.com. Действительно благодарен за первый фрагмент кода, не могли бы вы объяснить, что он делает по частям? - person Daniel Rachfał; 24.02.2015
comment
Вот почему я дал вам лучший подход! - person Gaël; 24.02.2015
comment
О, извините, я не понял, большое спасибо за всю помощь, она действительно помогла мне :) - person Daniel Rachfał; 24.02.2015

попробуй это

 function getQueryValue( myUrl ){
      myUrl = newUrl.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
      var regexS = "[\\?&]" + myUrl + "=([^&#]*)";
      var regex = new RegExp( regexS );
      var results = regex.exec( location.href);
      if( results == null )
        return "";
      else
        return results;
    }

    //current url 
    var curUrl = location.href;

        //new url 
        var newUrl = getQueryValue( "curUrl" );

        //redirect to new page
        location.href = newUrl;
    }
person Oday M. Saed    schedule 24.02.2015