Skip to content

Instantly share code, notes, and snippets.

@libbkmz
Created November 29, 2013 15:17
Show Gist options
  • Select an option

  • Save libbkmz/7707180 to your computer and use it in GitHub Desktop.

Select an option

Save libbkmz/7707180 to your computer and use it in GitHub Desktop.
sape.toolbar.ext.utSearchLink = function(data, url)
{
var url = url.toLowerCase();
if (data.indexOf('a href="' + url + '"') > 0) return true;
if (data.indexOf("a href='" + url + "'") > 0) return true;
var host = url.split("/")[2].replace(/^www\./i, '');
var tail = url.replace(/^http(s)?[\/\:]*/i, '').replace(/^[^\/]*[\/]?/i, '').replace(/^index\.([a-z]{3,5})/i, '').replace(/\#(.*)$/i, '').replace(/index\.([a-z]{3,5})$/i, '');
var tail_dec = unescape(tail);
var links = sape.toolbar.ext.utLinkArray(data);
for (var i=0; i < links.length; i++)
{
var link = links[i].toLowerCase();
if (link.search(/^http/i) == 0 && link.search(host) == -1) continue; // внешняя
if (link.search(/^http/i) == -1 && link.search(/^[a-z]*\:/i) == 0) continue; // неподходящий протокол
if (link.search(/^http/i) == 0)
link = link.replace(/^http(s)?[\/\:]*/i, '')
.replace(/^[^\/]*[\/]?/i, '')
.replace(/^index\.([a-z]{3,5})/i, '')
.replace(/\#(.*)$/i, '')
.replace(/index\.([a-z]{3,5})$/i, '');
else
link = link.replace(/^\.{1,2}/, '')
.replace(/^[\/]?/i, '')
.replace(/^index\.([a-z]{3,5})/i, '')
.replace(/\#(.*)$/i, '')
.replace(/index\.([a-z]{3,5})$/i, '');
if (link == tail || link.replace(/\/$/, '') == tail.replace(/\/$/, '') || link == tail_dec) return true;
}
return false;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment