This script is for removing Bing Redirect link, but this doesn't support privacy, as it fetch the redirect result of the URL
// ==UserScript==
// @name Bing Direct Link
// @namespace http://github.com/benyaminl
// @version 0.14
// @description This script is for removing Bing Redirect link, but this doesn't support privacy, as it fetch the redirect result of the URL
// @author Benyamin Limanto
// @match https://www.bing.com/search*
// @icon https://icons.duckduckgo.com/ip2/bing.com.ico
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
function replaceTheRestOfURL() {
var urls = document.querySelectorAll("a[href*='https://www.bing.com/ck']:not(.b_logoArea)");
for(i=0;i < urls.length; i++)
{
let url = urls[i];
fetch(url.href)
.then(r => r.text())
.then(d => {
try {
let realUrl = d.match(/https:\/\/.+/i)[0].replace("\";","");
url.href = realUrl;
}
catch(e)
{
console.log(e);
}
});
}
}
var urlBody = document.querySelectorAll(".tilk");
var i = -1;
for(i=0; i < urlBody.length; i++)
{
let url = urlBody[i];
let stringUrl = url.querySelector("cite");
fetch(url.href)
.then(r => r.text())
.then(d => {
let realUrl = d.match(/https:\/\/.+/i)[0].replace("\";","");
let h2Url = url.parentNode.parentNode.querySelector("h2 a");
h2Url.href = realUrl;
});
}
var urlCard = document.querySelectorAll(".rd_sg_ttl");
for(i=0; i < urlCard.length; i++)
{
let url = urlCard[i];
let cite = urlCard[i].parentNode.querySelector("cite");
fetch(url.querySelector("a").href)
.then(r => r.text())
.then(d => {
let realUrl = d.match(/https:\/\/.+/i)[0].replace("\";","");
url.querySelector("a").href = realUrl;
});
}
replaceTheRestOfURL();
// Hook for rest dynamic part of page, using timeout
document.querySelector("#b_results").addEventListener("click", function(e) {
let target = e.target;
console.log("clicked");
let counter = 0;
let check = setInterval(function() {
replaceTheRestOfURL();
counter++;
if (counter > 5)
{
console.log("stopped");
clearInterval(check);
}
}, 1000);
});
})();