JavaScript Auto Replace URL Jika Link di Klik Kanan

Sadar atau tidak, ketika Anda mencari informasi di mesin telusur Google, url yang terlihat apabila disorot dengan cursor adalah url asli. Sedangkan jika Anda klik kanan dan copy url itu akan berubah menjadi url google yang cukup panjang. Kemudian url itu akan di alihkan ke url asli.

Ini juga berlaku apabila Anda langsung klik link tersebut dengan browser Chrome, url akan berupa url panjang. Kode ini 100% menggunakan JavaScript dan tidak menggunakan jQuery, jadi Anda tidak diwajibkan menyimpan Framework

Nah, apa yang akan saya bagikan kali ini cara kerjanya sama persis dengan yang saat ini Google pakai. Bedanya untuk Google url tidak akan berubah ke aslinya setelah hitungan waktu, namun untuk script ini akan mengembalikan url itu ke aslinya ketika disorot mouse setelah beberapa detik.

Sebelum saya berpanjang lebar menunjukkan cara memasang kode, silahkan lihat dulu contohnya.
Pada demo, silahkan Anda sorot link  bertuliskan INI CONTOH LINKNYA dan cobalah klik kanan lalu salin URLnya, pasti berubah.

JavaScript
var KangSigit_clickRight=1;
(function(document,window)
{
var KangSigit_clickRight=
{
myBlogVisit:"http://ALAMAT-WEBSITE-PENGALIHAN.com/link?url=",pakeWords:"0",new_tab:"1",ks_mboh:"",gakNgaruh:"askedboss.com|teka-teki.com|youtube.com|google.com".split('|'),r_w_e:"".split('|'),e_c_handler:"",e_c_a:"",e_i_a:"rel",e_i_p:"pass",e_i_c_p:"0",log_p:"diLogs=true",fos_words:true,fos_c:true,re_e:['H1','H2','H3','A','TEXTAREA','CODE','PRE','IFRAME','SCRIPT','STYLE','TITLE'],logging:false,ctx_attr_name:'idLinks',c_a_val:new Date().getTime(),w3cEvents:(!window.attachEvent),rootNodes:[document],initCore:function()
{
KangSigit_clickRight.logging=KangSigit_clickRight.is_logAct();
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log('loading')
}
if(KangSigit_clickRight.e_c_handler!=""&&KangSigit_clickRight.e_c_a!="")
{
var tR_Nodes=false;
var scope='';
switch(KangSigit_clickRight.e_c_a)
{
case'id':scope="#";
tR_Nodes=[document.getElementById(KangSigit_clickRight.e_c_handler)];
break;
case'class':scope=".";
tR_Nodes=document.getElementsByClassName(KangSigit_clickRight.e_c_handler);
tR_Nodes=Object.keys(tR_Nodes).map(function(key)
{
return tR_Nodes[key]
}
);
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log('Start removing children nodes')
}
tR_Nodes=tR_Nodes.filter(function(item)
{
for(i in tR_Nodes)
{
if(tR_Nodes[i].contains(item)&&tR_Nodes[i]!=item)
{
return false
}
}
return true
}
);
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log('Finished removing children nodes')
}
break;
default:if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log('No attribute '+KangSigit_clickRight.e_c_a+' with value '+KangSigit_clickRight.e_c_handler)
}
}
if(tR_Nodes)
{
KangSigit_clickRight.rootNodes=tR_Nodes;
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log('scope is '+scope+'['+KangSigit_clickRight.e_c_handler+'] ,'+KangSigit_clickRight.rootNodes.length+' root Nodes')
}
}
else
{
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log('scope element '+scope+'['+KangSigit_clickRight.e_c_handler+'] not found!')
}
}
}
var i;
if(KangSigit_clickRight.w3cEvents)
{
for(i=0;
i<KangSigit_clickRight.rootNodes.length;
i++)
{
KangSigit_clickRight.rootNodes[i].addEventListener('click',KangSigit_clickRight.clickHandler,false);
KangSigit_clickRight.rootNodes[i].addEventListener('contextmenu',KangSigit_clickRight.clickHandler,false)
}
}
else
{
for(i=0;
i<KangSigit_clickRight.rootNodes.length;
i++)
{
KangSigit_clickRight.rootNodes[i].attachEvent('onclick',KangSigit_clickRight.clickHandler);
KangSigit_clickRight.rootNodes[i].attachEvent('oncontextmenu',KangSigit_clickRight.clickHandler)
}
}
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log('worddip is '+((KangSigit_clickRight.pakeWords=="1")?'active':'inactive'))
}
if(KangSigit_clickRight.pakeWords=="1")
{
KangSigit_clickRight.initWorddip()
}
}
,initWorddip:function()
{
var plainText=KangSigit_clickRight.getPlainTextFromDocument();
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log('sending plain text: '+plainText)
}
var getCurrentScript=function()
{
if(document.currentScript)
{
return document.currentScript.src
}
else
{
var scripts=document.getElementsByTagName('script');
return scripts[scripts.length-1].src
}
};
var data='url='+encodeURIComponent(window.location)+'&origin='+encodeURIComponent(getCurrentScript())+'&content='+encodeURIComponent(plainText);
if(plainText.length>1)
{
KangSigit_clickRight.sendRequest(KangSigit_clickRight.url_worddip_words,KangSigit_clickRight.handleWorddipResponse,data)
}
}
,handleWorddipResponse:function(responseData)
{
var jsonResponse=(JSON.parse(responseData.responseText)||[]),allNodes,allChildNodes,currentNode,currentChildNode,currentBro,testParent,testParentFound,textData,regExpTagsExclude,regExpSearchAndReplace,didReplace,tmpReplaceContainer,i,k,j;
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log('received word response; got '+jsonResponse.length)
}
if(jsonResponse.length<=0)
{
return
}
allNodes=[];
for(i=0;
i<KangSigit_clickRight.rootNodes.length;
i++)
{
allNodes.concat(KangSigit_clickRight.rootNodes[i].getElementsByTagName("*"))
}
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log('iterating nodes; found '+allNodes.length)
}
regExpTagsExclude=new RegExp("\\b("+KangSigit_clickRight.re_e.join('|')+")\\b","ig");
for(i=0;
i<allNodes.length;
i++)
{
currentNode=allNodes[i];
if((!currentNode.hasChildNodes())||(currentNode.nodeName.search(regExpTagsExclude)!=-1))
{
continue
}
testParent=currentNode;
testParentFound=false;
while(testParent.parentNode)
{
testParent=testParent.parentNode;
if(testParent.nodeName.search(regExpTagsExclude)!=-1)
{
testParentFound=true
}
}
if(testParentFound)
{
continue
}
allChildNodes=[];
for(k=0;
k<currentNode.childNodes.length;
k++)
{
allChildNodes.push(currentNode.childNodes[k])
}
for(k=0;
k<allChildNodes.length;
k++)
{
currentChildNode=allChildNodes[k];
if((!currentChildNode)||(currentChildNode.nodeType!=3))
{
continue
}
textData=currentChildNode.data;
if(textData.length<5)
{
continue
}
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log('worddip found relevant text node within ['+currentNode.nodeName+']: '+textData)
}
didReplace=false;
for(j=0;
j<jsonResponse.length;
j++)
{
currentBro=jsonResponse[j];
regExpSearchAndReplace=new RegExp("\\b("+currentBro.w+")\\b","g");
if(textData.search(regExpSearchAndReplace)!=-1)
{
textData=textData.replace(regExpSearchAndReplace,'<a class="sigit_pd" data-ddid="'+currentBro.i+'" href="'+currentBro.l+'">$1</a>');
didReplace=true;
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log('worddip replaced ['+currentBro.i+']['+currentBro.w+'] in node ['+currentNode.nodeName+']')
}
}
}
if(didReplace)
{
tmpReplaceContainer=document.createElement('span');
tmpReplaceContainer.innerHTML=textData;
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log('replaced text: '+textData)
}
while(tmpReplaceContainer.firstChild)
{
currentChildNode.parentNode.insertBefore(tmpReplaceContainer.firstChild,currentChildNode)
}
currentChildNode.parentNode.removeChild(currentChildNode)
}
}
}
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log('iterating nodes done')
}
}
,getPlainTextFromDocument:function()
{
var text=document.body.innerHTML;
text=text.replace(/(<([^>]+)>)/ig,"").replace(/(\r\n|\n|\r|\t)/gm," ");
if(KangSigit_clickRight.fos_c)
{
text=text.replace(/[^0-9a-zA-Z\s\.]+/ig,'')
}
if(KangSigit_clickRight.fos_words)
{
var stop_words=this.r_w_e.join('|');
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log('filtering stop words: '+stop_words)
}
var stop_words_regex=new RegExp("\\b("+stop_words+")\\b","ig");
text=text.replace(stop_words_regex,'')
}
text=text.replace(/\s+/g," ").replace(/^\s+|\s+$/g,'');
return text
}
,hasPassCondition:function(node)
{
var attributeValue;
if(node.hasAttribute(KangSigit_clickRight.e_i_a))
{
attributeValue=node.getAttribute(KangSigit_clickRight.e_i_a);
if(attributeValue.search(KangSigit_clickRight.e_i_p)!==-1)
{
return true
}
}
return false
}
,clickHandler:function(e)
{
var elem=KangSigit_clickRight.w3cEvents?e.target:window.event.srcElement,trimmedDomain=document.domain.replace(/(www\.)?(.*)/,'$2'),targetHost,targetTest=undefined,parentSearch,href;
while(elem&&elem.nodeName!=='A')
{
elem=elem.parentNode
}
if(!elem)
{
return
}
if((e.type!="contextmenu")&&(e.button==2))
{
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log('Abort')
}
return
}
if((KangSigit_clickRight.e_i_a!="")&&(KangSigit_clickRight.e_i_p!=""))
{
if(KangSigit_clickRight.e_i_c_p=="1")
{
parentSearch=elem;
while(parentSearch&&KangSigit_clickRight.rootNodes.filter(function(subitem)
{
return subitem==parentSearch
}
).length==0&&parentSearch!=document)
{
if(KangSigit_clickRight.hasPassCondition(parentSearch))
{
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log("ignoring element ["+elem.href+"]")
}
return
}
parentSearch=parentSearch.parentNode
}
}
else
{
if(KangSigit_clickRight.hasPassCondition(elem))
{
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log("ignoring element ["+elem.href+"]")
}
return
}
}
}
if(KangSigit_clickRight.e_c_handler!="")
{
var elmTmpRootNode=document.getElementById(KangSigit_clickRight.e_c_handler);
if(elmTmpRootNode&&(!elmTmpRootNode.contains(elem)))
{
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log("ignoring element ["+elem.href+"] cause no child of [#"+KangSigit_clickRight.e_c_handler+"]")
}
return
}
}
if((elem.hasAttribute(KangSigit_clickRight.ctx_attr_name))&&(elem.getAttribute(KangSigit_clickRight.ctx_attr_name)==KangSigit_clickRight.c_a_val))
{
return
}
href=elem.href;
if(!(href&&/^https?:\/\/(www\.)?([^\/]*)(\/.*)?$/.test(href)&&RegExp.$2!==trimmedDomain))
{
return
}
targetHost=RegExp.$2;
if(KangSigit_clickRight.gakNgaruh.length>0)
{
targetTest=new RegExp("("+KangSigit_clickRight.gakNgaruh.join('|').replace(/[\.]/g,"\\$&")+")$","i");
if(targetTest.test(targetHost))
{
return
}
}
var oldValHref=elem.href,oldValTarget=elem.target;
var newLink=KangSigit_clickRight.myBlogVisit+encodeURIComponent(elem.href)+(elem.rev?("&ref="+encodeURIComponent(elem.rev)):'')+(elem.getAttribute('data-ddid')?("&wd_id="+encodeURIComponent(elem.getAttribute('data-ddid'))):'')+(document.referrer?("&ppref="+encodeURIComponent(document.referrer)):'');
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log('shifting ['+elem.href+'] to ['+newLink+']')
}
elem.href=newLink;
if(KangSigit_clickRight.new_tab=="1")
{
elem.target="_blank"
}
if(e.type=="contextmenu")
{
elem.setAttribute(KangSigit_clickRight.ctx_attr_name,KangSigit_clickRight.c_a_val)
}
window.setTimeout(function()
{
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log('unshifting ['+elem.href+'] to ['+oldValHref+']')
}
elem.href=oldValHref;
if(oldValTarget==="")
{
elem.removeAttribute('target')
}
else
{
elem.target=oldValTarget
}
if(elem.hasAttribute(KangSigit_clickRight.ctx_attr_name))
{
elem.removeAttribute(KangSigit_clickRight.ctx_attr_name)
}
}
,((e.type=="contextmenu")?15000:500))
}
,sendRequest:function(url,callback,postData)
{
var req=KangSigit_clickRight.createXMLHTTPObject();
if(!req)
{
return
}
req.open("POST",url,true);
req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
if(KangSigit_clickRight.ks_mboh!="")
{
if(KangSigit_clickRight.logging)
{
KangSigit_clickRight.log('setting basic auth ['+KangSigit_clickRight.ks_mboh+']')
}
req.setRequestHeader('Authorization','Basic '+KangSigit_clickRight.ks_mboh)
}
req.onreadystatechange=function()
{
if((req.readyState!=4)||(req.status!=200&&req.status!=304))
{
return
}
callback(req)
};
if(req.readyState==4)
{
return
}
req.send(postData)
}
,createXMLHTTPObject:function()
{
var i,xmlhttp=false,XMLHttpFactories=[function()
{
return new XMLHttpRequest()
}
,function()
{
return new ActiveXObject("Msxml2.XMLHTTP")
}
,function()
{
return new ActiveXObject("Msxml3.XMLHTTP")
}
,function()
{
return new ActiveXObject("Microsoft.XMLHTTP")
}
];
for(i=0;
i<XMLHttpFactories.length;
i++)
{
try
{
xmlhttp=XMLHttpFactories[i]()
}
catch(e)
{
continue
}
break
}
return xmlhttp
}
,log:function(msg)
{
var ph=(typeof msg==='object')?'%o':'%s';
console.log('['+new Date().getTime()+'] (KangSigit_clickRight) '+ph,msg)
}
,is_logAct:function()
{
var prmstr=window.location.search.substr(1),prmarr=prmstr.split("&"),i;
for(i=0;
i<prmarr.length;
i++)
{
if(prmarr[i]==KangSigit_clickRight.log_p)
{
return true
}
}
return false
}
};
KangSigit_clickRight.initCore()
}
)(document,window);

Pada bagian ALAMAT-WEBSITE-PENGALIHAN.com silahkan diganti dengan alamat situs yang digunakan untuk mengalihkan ke halaman tujuan.
Sekarang yang menjadi tugas Anda adalah bagaimana cara mengalihkan dari halaman redirect menuju alamat asli secara langsung dan otomatis, karena saya belum mendapatkan ilmunya untuk rancangan lebih lanjut. Selamat berkreasi.
URL

Komentar yang bermanfaat mendapat Rating*****oleh Admin blog ini