Reputation: 103
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?
Upvotes: 4
Views: 11409
Reputation: 21465
Try querySelectorAll()
with CSS3 selectors:
document.querySelectorAll('a[href*="http://www.youtube.com/SPECIFICURL"]')
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.Upvotes: 13
Reputation: 2175
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");
Upvotes: 4
Reputation: 10972
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
Upvotes: 2
Reputation: 2169
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
Then loop through the array to check for your specific link.
Upvotes: 1