скрипт greasemonkey для замены буквы в URL - PullRequest
0 голосов
/ 28 января 2020

Я пытался изменить некоторые найденные мной скрипты - но они не работают.

Когда на загруженной странице есть ссылка, указывающая на: https://website.new/ia-o/number1/number2/number3/number4.jpeg.html

Я хочу это на самом деле указывать на: https://website.new/ib-o/number1/number2/number3/number4.jpeg.html

Так что просто замените одну букву в ссылке (от */ia-o/* до */ib-o/*)

Это сценарий, который я пробовал:

// ==UserScript==
// @name        website.new
// @namespace   lii
// @description redirect to anothersite
// @include     https://website.new/*
// @version     1
// @grant       none
// ==/UserScript==

var links,thisLink;
links = document.evaluate("//a[@href]",
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null);

for (var i=0;i<links.snapshotLength;i++) {
    var thisLink = links.snapshotItem(i);

    thisLink.href = thisLink.href.replace('https://website.new/ia-o/',
                                          'https://website.new/ib-o/');

}

Но это ничего не делает.

Если кто-нибудь может помочь - я был бы очень признателен!

Часть 2: Еще лучшим решением было бы, если бы я мог переделать вся ссылка вот так.

Старая ссылка на веб-странице: https://website.new/ia-o/number1/number2/number3/number4.jpeg.html

Новая ссылка на странице: https://website.new/o/number1/number2/number3/number4.jpeg

(поэтому удалите ia- и также. html по ссылке)

Но любое решение подойдет!

Спасибо!

Ответы [ 2 ]

0 голосов
/ 28 января 2020

Это похоже на предыдущий ответ, только что сделанный немного короче

// ==UserScript==
// @name        website.new
// @namespace   lii
// @description redirect to anothersite
// @include     https://website.new/*
// @version     1
// @grant       none
// ==/UserScript==

[...document.links].forEach(item => item.href = item.href.replace('oldvalue', 'newvalue'));
0 голосов
/ 28 января 2020

заменить атрибут href во всех ссылках, найденных на текущей странице

// ==UserScript==
// @name        website.new
// @namespace   lii
// @description redirect to anothersite
// @include     https://website.new/*
// @version     1
// @grant       none
// ==/UserScript==

(function() {

    for (var i=0,link; (link=document.links[i]); i++) {
        link.href = link.href.replace('oldvalue', 'newvalue');
    }

})();

Вы можете заменить отдельные буквы

link.href.replace('a', 'o');

или целые слова

link.href.replace('grease', 'tamper');

в вашем в случае c, просто удалите ненужные строки, заменив их пустой строкой

link.href = link.href.replace(/ia-|\.html/g, '');
...