2016-01-12 2 views
1

Я разрабатываю инструмент для проверки состояния всех типов ресурсов, таких как js, css, img и т. Д. И других URL-адресов для данного сайта.Извлечение всего URL из текста документа (контента)

См., Например, Данный url: www.abc.com Затем мне нужно проверить статус всех типов ресурсов и URL-адресов для www.abc.com

Для этого я использую jquery ajax ... В результате я получу html-содержимое этого URL-адреса (abc.com)

Но проблема в том, как найти все URL-адреса этого содержимого html? Я пробовал много способов, но не могу понять, как мне получить.

Пожалуйста, предоставьте кому-то хорошее решение для этого.

Заранее спасибо.

ответ

2

Попробуйте использовать .each() с повтором итерацией img, link, script элементы; получить src или href значения атрибутов

$("img, link, script").each(function() { 
    // do stuff with `this.src` or `this.href` 
    console.log(this.src || this.href) 
}) 
+0

Это сравнительно простым решением! могут быть другие возможности для URL-адресов в других тегах, таких как форма, iframe и т. д., поэтому мы не можем статически ставить запросы на теги. – Jaydeep

+0

_ «могут быть другие возможности для URL-адресов в других тегах, таких как форма, iframe и т. Д., Поэтому мы не можем запрашивать теги статически» _ Попробуйте подставить '$ (" [src], [href], [method], [action] ") 'selector для' $ ("img, link, script") 'selector, добавьте проверку атрибутов' method', 'action', если необходимо, в' .each() 'callback – guest271314

+0

Это лучшая идея. Спасибо за помощь. – Jaydeep

2
$('a, img, link, script').each(function() { 
     console.info($(this).attr('href')); 
     console.info($(this).attr('src')); 
    }); 
1

Если вы хотите, чтобы получить все «URL» с чистого JavaScript.

HTML:

<a href="www.google.com">1</a> 
<br> 
<a href="www.facebook.com">2</a> 
<br> 
<a href="www.yahoo.com">3</a> 
<br> 
<a href="www.bing.com">4</a> 
<br> 
<a href="www.youtube.com">5</a> 
<br> 
<a href="www.iRanOutOfNames.com">6</a> 
<br> 

JavaScript:

function getURLs(url) { 
    //create an empty array 
    var array = []; 
    // get all <a> tags 
    //note: you can do that with <img/> tags or any 
    //I only used the <a> tag for the sake of time 
    url = document.getElementsByTagName("a"); 
    //loop through all of the elements 
    for (var i = 0; i < url.length; i++) { 
    //when done, add all the elements inside the empty array 
    array.push(url[i].href); 
    } 
    //alert them 
    alert(array); 
} 
//call the function 
getURLs(); 

Демо: jsfiddle

Смежные вопросы