Вопрос

Could anyone help me with a function for JavaScript which searches the source code and compares all of the links on the site with the specific link I am looking for.

For example: I am executing the JavaScript on www.youtube.com and I am looking for one specific YouTube link.

It could look like this (which of course doesn't work):

if(document.body.indexOf("http://www.youtube.com/SPECIFICURL")!== -1){
    console.log("Url found");
}else{
  console.log("Url not found");

}

How can I accomplish this?

Это было полезно?

Решение 2

function find_link_by_href(address)
    links = document.getElementsByTagName("a");

    for(var i = 0; i < links.length; i++) { 
      if( links[i].href === address ) {
        console.log("Url found"); 
        return; 
     } 
 }

You can call it like this:

find_link_by_href("http://www.youtube.com/SPECIFICURL");

Другие советы

Try querySelectorAll() with CSS3 selectors:

document.querySelectorAll('a[href*="http://www.youtube.com/SPECIFICURL"]')

Fiddle

This selector says find all links with an href attribute that contains a specific string. Lets break this down a little bit:

  • a - this is the element type, e.g. "link"
  • href - this is the element attribute
  • *= - this essentially means contains. There are different type of equality checks that can be used: starts with, contains word, ends with, etc. The jQuery selectors documentation is quite good.
  • "..." - everything in quotes after the equal sign is the substring the query is looking for.

Use Array.prototype.some to see if at least one element in document.links has the href you're looking for.

var has_link = [].some.call(document.links, function(link) {
   return link.href === 'http://www.youtube.com/SPECIFICURL';
});

You can patch it in old browsers using the patch found at MDN Array#some

You can use document.links to get the anchors, then just loop through grabbing the href, like this:

    var arr = [], l = document.links;
    for(var i=0; i<l.length; i++) {
      arr.push(l[i].href);
    }

//arr is now an array of all the href attributes from the anchors in the page

See here.

Then loop through the array to check for your specific link.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top