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.12
// @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/*
// @icon https://icons.duckduckgo.com/ip2/bing.com.ico
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
var urlBody = document.querySelectorAll(".tilk");
var i = -1;
for(i=0; i < urlBody.length; i++)
{
let url = urlBody[i];
let stringUrl = url.querySelector("cite");
if (!(stringUrl.innerText.includes("...") || stringUrl.innerText.includes("…")))
{
let httpPrefix = (stringUrl.innerText.substr(0,4) == "http") ? "" : "http://";
url.href = httpPrefix + stringUrl.innerText;
let h2Url = url.parentNode.parentNode.querySelector("h2 a");
h2Url.href = httpPrefix + stringUrl.innerText;
console.log(stringUrl.innerText.substr(0,4));
}
else
{
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");
if (!(cite.innerText.includes("...") || cite.innerText.includes("…")))
{
let httpPrefix = (cite.innerText.substr(0,4) == "http") ? "" : "http://";
url.querySelector("a").href = httpPrefix + cite.innerText;
console.log(cite.innerText);
}
else
{
fetch(url.querySelector("a").href)
.then(r => r.text())
.then(d => {
let realUrl = d.match(/https:\/\/.+/i)[0].replace("\";","");
console.log(realUrl);
url.querySelector("a").href = realUrl;
});
}
}
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 => {
let realUrl = d.match(/https:\/\/.+/i)[0].replace("\";","");
url.href = realUrl;
});
}
})();