Расширение браузера Chrome, которое обнаруживает хэштеги на странице

#javascript #jquery #google-chrome-extension

#javascript #jquery #google-chrome-extension

Вопрос:

В качестве личного проекта я хотел бы создать расширение Chrome, которое будет находить все хэштеги на странице. Я не очень разбираюсь в JS или jquery, поэтому мне интересно, как мне следует подойти к этому?

РЕДАКТИРОВАТЬ: Расширение Chrome вводит javascript после загрузки страницы, но мне нужно отсканировать весь документ на предмет хэштега. Он просматривает весь документ, что я не уверен, как сделать.

Спасибо!

Комментарии:

1. Вы имеете в виду теги ссылок с # в них?

2. Да, теги с #. Однако задача для меня состоит в том, чтобы просмотреть весь документ.

3. @Hogan что вы имеете в виду? Я хочу обнаруживать хэштеги, чтобы расширение могло сообщать об этом. Например, является ли какой-либо из тегов на этой странице трендовым, используют ли его мои подписчики / люди, на которых я подписываюсь?

4. @FallingBullets Я ищу javascript, который позволит мне применять это регулярное выражение или что-то подобное ко всему тексту, отображаемому на странице.

5. @DavidA — Я имею в виду, что хэштеги ничего не значат на веб-страницах. Они что-то значат в Twitter. Ваш вопрос не имеет смысла. Страницы не изменяются. Вы говорите о конкретном веб-сайте, на котором есть контент Twitter? Никто из нас не знает.

Ответ №1:

Если вы имеете в виду просто привязку тегов с помощью href, в котором есть #, то:

 var aTags = document.getElementsByTagName("a");
for(var index = 0; index < aTags.length; index  ){
    if(aTags[index].href.indexOf("#") != -1){
        alert("found one");
    }
}
  

Или, если вы хотите что-то более общее, один из способов вернуть всю веб-страницу просто:

 document.body.innerHTML  //A string containing all the code/text inside the body of the webpage.
  

И затем вы можете выполнить некоторый indexOf или поиск / замену по регулярному выражению в зависимости от того, что вы хотите сделать конкретно.

Но если вы знаете, что хэштег, который вы ищете, всегда находится в каком-то контейнере, таком как привязка или даже просто div с определенным классом, тогда я бы выбрал это вместо того, чтобы работать со всей страницей. Вот список полезных методов для анализа веб-страницы:

 document.getElementsByTagName("a");  //already mentioned
document.getElementsById("id");
document.getElementsByName("name");
//and a custom function to get elements by class name(I did  not write this)
function getElementsByClass(searchClass, domNode, tagName)
{ 
if (domNode == null) domNode = document;
if (tagName == null) tagName = '*';
var el = new Array();
var tags = domNode.getElementsByTagName(tagName);
var tcl = " " searchClass " ";
for(i=0,j=0; i<tags.length; i  )
{ 
    var test = " "   tags[i].className   " ";
    if (test.indexOf(tcl) != -1)
    {
        el[j  ] = tags[i];
    }
} 
return el;
}
  

Комментарии:

1. Спасибо. Я понятия не имел о document.body.innerHTML.