【问题标题】:How to program a script that changes url如何编写更改 url 的脚本
【发布时间】:2015-04-26 01:36:32
【问题描述】:

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

一个例子是:

起始网址:www.website.com/watch8dzjad8

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

如果有帮助,则该脚本应在 Tampermonkey 中完成,以便在特定网站上扫描链接并添加 /youtube.com 如果找不到它,因为它不会否则工作,它真的会帮助我不要每天复制和粘贴 /youtube.com 10 次,以及学习如何在 JavaScript 中使用 URL。在此先感谢

【问题讨论】:

    标签: java javascript google-chrome url tampermonkey


    【解决方案1】:
    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)

    • ma​​tch 测试字符串是否遵循给定的模式

    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

    【讨论】:

    • 它的效果非常好,但是效果太棒了,而且它不断地添加 /youtube.com。真的很感谢第一段代码,你能解释一下它是做什么的吗?
    • 这就是为什么我给了你一个更好的方法!
    • 哦,对不起,我还没有意识到非常感谢它真正帮助了我的所有帮助:)
    【解决方案2】:

    试试这个

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

    【讨论】:

      猜你喜欢
      • 2011-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-01
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多