如何编写更改url的脚本

时间:2015-02-24 12:19:28

标签: java javascript google-chrome url tampermonkey

我想创建一个基本上改变页面URL的tampermonkey脚本。我想要做的是查看网址中是否包含“youtube.com”,如果没有,则应将/youtube.com添加到网址。

这方面的一个例子是:

首发网站:www.website.com/watch8dzjad8

更改后的网站:www.website.com/youtube.com/watch8dzjad8

如果它有帮助那么脚本意味着在tampermonkey中完成,那么在特定网站上它将扫描链接并添加/youtube.com如果它找不到它,因为它不会否则,这将帮助我不要每天复制和粘贴/youtube.com 10次,以及学习如何在JavaScript中使用URL。提前致谢

2 个答案:

答案 0 :(得分:0)

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 是页面的完整网址(http://www.website.com/watch8dzjad8

  • 匹配测试字符串是否遵循给定的模式

location =“/ youtube.com”+ location.pathname

  • 设置位置意味着打开指定的网址
  • location.pathname 给出了网址的路径(/ watch8dzjad8)

因此,如果访问过的网页的网址(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

答案 1 :(得分:0)

试试这个

 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;
    }