vk.com - как отключить преобразование ссылок в сообщениях?

415
17 января 2018, 18:51

Речь идёт о моменте, когда любую ссылку вк преобразовывает в подобие vk.com/away?блаблабла. Целью стоит избавиться от этого любым способом, чтобы url отправляемых ссылок, после перезагрузок страницы или после получения/отправки таких сообщений был оригинальный, а не преобразованный в вк'шную (разумеется речь о отображении на клиентской стороне).

Были попытки и выключить весь js на сайте, но как-то не помогло; были попытки и сделать в силу своих нелучших навыков js, который возвращал бы оригинальный url ссылок, но получился вот такой код, который работает через одно место:

if(document.domain === "vk.com") {
var wktid = 0;
var wktlinkfix = document.querySelectorAll('.im-mess--text.wall_module._im_log_body');
var oldlinkwkt;
var newlinkwkt;
// поиск новых ссылок - начало
function setnewwktlink() {
try {
oldlinkwkt = wktlinkfix[wktid].innerHTML.split('href="')[1].split('"')[0];
} catch(err) {
    try {
    oldlinkwkt = undefined;
    } catch(err) {}
}
try {
newlinkwkt = wktlinkfix[wktid].innerHTML.split('blank">').pop().split('</a>')[0].split('title="')[1].split('"')[0];
} catch(err) {
    try {
        // исправление работы с видеозаписями и тегами
        if(wktlinkfix[wktid].innerHTML === wktlinkfix[wktid].innerHTML.replace('<div class="page_post_sized_thumbs clear_fix"', "") && wktlinkfix[wktid].innerHTML === wktlinkfix[wktid].innerHTML.replace('class="mem_link"', "") && wktlinkfix[wktid].innerHTML === wktlinkfix[wktid].innerHTML.replace('class="page_media', "") && wktlinkfix[wktid].innerHTML !== wktlinkfix[wktid].innerHTML.replace('target=', "")) {
        newlinkwkt = wktlinkfix[wktid].innerHTML.split('blank">')[1].split('</a>')[0].split("return goAway('").pop().split("',")[0];
            // исправление ссылок без "http"
            if(newlinkwkt === newlinkwkt.replace('http', "")) {
            newlinkwkt = newlinkwkt.replace(newlinkwkt, "http://"+newlinkwkt);
            }
        } else { newlinkwkt = oldlinkwkt; }
    } catch(err){
        try {
            // исправление работы с видеозаписями и тегами
            if(wktlinkfix[wktid].innerHTML === wktlinkfix[wktid].innerHTML.replace('<div class="page_post_sized_thumbs clear_fix"', "") && wktlinkfix[wktid].innerHTML === wktlinkfix[wktid].innerHTML.replace('class="mem_link"', "") && wktlinkfix[wktid].innerHTML === wktlinkfix[wktid].innerHTML.replace('class="page_media', "") && wktlinkfix[wktid].innerHTML !== wktlinkfix[wktid].innerHTML.replace('target=', "")) {
                newlinkwkt = wktlinkfix[wktid].innerHTML.split('blank">')[1]().split('</a>')[0];
                // исправление ссылок без "http"
                if(newlinkwkt === newlinkwkt.replace('http', "")) {
                newlinkwkt = newlinkwkt.replace(newlinkwkt, "http://"+newlinkwkt);
                }
            } else { newlinkwkt = oldlinkwkt; }
        } catch(err) {}
    }
}
}
// поиск новых ссылок - конец
try {
setnewwktlink();
} catch(err) { }
} //domain check
setInterval(function() {
    if(document.domain === "vk.com") {
    try {
    wktlinkfix = document.querySelectorAll('.im-mess--text.wall_module._im_log_body'); // обновляем количество элементов
    if(wktlinkfix[wktid+1] !== undefined) { // old wktid !== 34
        if(wktlinkfix[wktid+1] !== undefined) {
        wktid++;
        }
    } else {
    while(wktid !== 0) {
    wktid--;
    }
    }
    setnewwktlink();
    if(wktlinkfix[wktid].innerHTML !== wktlinkfix[wktid].innerHTML.replace(oldlinkwkt, newlinkwkt)) {
        if(newlinkwkt !== undefined && oldlinkwkt !== undefined) {
        wktlinkfix[wktid].innerHTML = wktlinkfix[wktid].innerHTML.replace(oldlinkwkt, newlinkwkt);  
        }
    }
    } catch(err) {}
    }
}, 0); //интервал выполнения

Сил уже больше нет, больше недели фиксю, а создаваемые впоследствии исключения, во избежании глюков - приводят к ещё меньшему изначальному функционалу, типажа использовать упоминание и ссылку в одном сообщении или использовать две ссылки в одном сообщении - код проигнорирует и не вернёт прежнее значение ссылки.

Приму любую помощь в решении этого вопроса, будь то наставление/исправление кода, или, какой-нибудь ответ на поверхности, типажа "на самом деле это можно было выключить в настройках вот тут/это можно было отключить через элементы сайта/всё это выключалось одной командой в консоль"

Единственное решении этого вопроса, что я припоминаю - расширение для хромиум браузеров (VkOpt), которое отключает преобразование в вк ссылку. Но, помимо этого, это расширение добавляет огромную кучу ненужных мне функций.

P.S. Спасибо за потраченное на эту кучу текста время

READ ALSO
JS таймаут между click и dbckick эвентами

JS таймаут между click и dbckick эвентами

Приветы, как сделать чтобы был таймаут между паузой видео и его переходом в фулл скрин?В инете нашел только JQuery и там реализовано вообще не так,...

299
Один и тот же обработчик события несколько раз на элементе. Будут ли проблемы?

Один и тот же обработчик события несколько раз на элементе. Будут ли проблемы?

Добрый день! У меня есть функция, которая вешает на элемент обработчик divaddEventListener("click", move)

275
Регулярные выражения, 2 условия

Регулярные выражения, 2 условия

Друзья, помогите пожалуйстаТребуется, чтобы строка проходила проверку телефона, а так же, чтобы не проходили пробелы (/^\s+$/) Такой код работает

337
Можно ли использовать геокодирование в react-yandex-maps?

Можно ли использовать геокодирование в react-yandex-maps?

Здравствуйте, у меня возникла трудность с поиском нормальной документации по react-yandex-mapsЯ не могу понять как решить следующую задачу с помощью...

617