2017-08-31 1 views
0

Je veux remplacer tous les liens sur le site https://www.reddit.com/r/videos/ qui ont le youtube.com ou youtu.be domaine avec un autre domaineGreasemonkey script pour remplacer toutes les URL sur une page avec un certain domaine à un autre un

J'ai créé ce script avec succès tous youtube.com remplace avec youpak.com, mais les liens youtu.be ne sont pas remplacés pour une raison quelconque

// ==UserScript== 
// @name  replace r/videos youtube with youpak 
// @namespace test 
// @include  https://www.reddit.com/r/videos/ 
// @version  1 
// @grant  none 
// ==/UserScript== 

var links = document.getElementsByTagName('a'); 
var regexFull = /^https:\/\/www\.youtube\.com\/(.*)$/i; 
var regexShort = /^https:\/\/\.youtu\.be\/(.*)$/i; 
for (var i = 0; i < links.length; i++) { 
    links[i].href = links[i].href.replace(regexFull, 'https://www.youpak.com/$1'); 
    links[i].href = links[i].href.replace(regexShort, 'https://www.youpak.com/watch/?v=$1'); 
} 

exemple d'URL pour le regexFull règle serait https://www.youtube.com/watch?v=L4iyPXHM89E

Je veux que cette URL à modifier à https://www.youpak.com/watch?v=L4iyPXHM89E

Cela fonctionne


Un exemple d'URL pour la règle regexShort serait https://youtu.be/MkPU6P9OJv4 et https://youtu.be/MkPU6P9OJv4?t=10

I Voulez-vous que cette URL soit remplacée par https://www.youpak.com/watch?v=MkPU6P9OJv4 et https://www.youpak.com/watch?v=MkPU6P9OJv4?t=10 respectivement

Cela ne fonctionne pas


Répondre

1

Sans échapper à l'URL regexShort ressemble

^https://.youtu.be/(.*)$ 

Comme vous pouvez le voir, il y a un point supplémentaire avant 'youtu' qui devrait ne pas être là.

Essayez:

var regexShort = /^https:\/\/youtu\.be\/(.*)$/i;