2015-02-24 141 views
1

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

的一个例子是:

的起始网站:www.website.com/watch8dzjad8

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

如果有助于脚本完成后使用篡改密钥,以便在特定网站上扫描链接并添加/youtube.com(如果无法找到它),因为它不会起作用,否则它会真正帮助我不要每天复制和粘贴/youtube.com 10次,并学习如何使用JavaScript中的URL。在此先感谢

回答

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

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

位置=“/youtube.com"+ location.pathname

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

因此,如果访问的网页的URL(http://www.website.com/watch8dzjad8)包含字符串“网站。 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

+0

它的工作令人惊讶,但它工作得很好,它不断增加/youtube.com。真的非常感谢第一批代码,你能解释一下吗? – 2015-02-24 12:42:34

+0

这就是为什么我给你一个更好的方法! – Gael 2015-02-24 12:49:02

+0

噢,对不起,我没有意识到非常感谢所有的帮助,它真的帮助我:) – 2015-02-24 14:16:31

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