2016-03-03 3 views
1

Это кажется простой проблемой, но я пока не могу понять, как ее решить.Найдите первую ссылку с указанным тегом и откройте его (usercript)

Я хотел бы написать почтовый индекс greasemonkey для интернет-магазина, что делает следующий, когда я открываю их сайт (что в основном представляет собой список предметов друг под другом).

  • проверить, есть ли какие-либо новые элементы с момента моего последнего визита (в формате HTML на сайте появится «новый» знак в своем классе) в случае, если он находит 1 или больше деталей с новым тег, перейдите к следующему шагу (еще ничего не делать)

  • редирект это главная страница на первой линии с «новой» теге

Так что, когда я открываю http://mywebsite.com/ я должен быть немедленно перенаправлены на http://mywebsite.com/forsale/100009/ в этом примере. Но я не знаю, какой будет URL-адрес, поэтому скрипту необходимо проверить ссылки. Только первое совпадение, которое мне нужно (новые предметы всегда на высоте). Не старый (без нового тега), а не новые элементы под/после первого.

Это как источник веб-сайта выглядит:

<div class="item new " id="item_0" style=""> 
    <div class="item_click_overlay"> 
    <a href="http://mywebsite.com/forsale/100009/"> 
    <img src="http://mywebsite.com/pics/100009.gif"> 
    </a> 
    </div> 
</div> 

<div class="item new " id="item_1" style=""> 
    <div class="item_click_overlay"> 
    <a href="http://mywebsite.com/forsale/100007/"> 
    <img src="http://mywebsite.com/pics/100007.gif"> 
    </a> 
    </div> 
</div> 

<div class="item " id="item_2" style=""> 
    <div class="item_click_overlay"> 
    <a href="http://mywebsite.com/forsale/100006/"> 
    <img src="http://mywebsite.com/pics/100006.gif"> 
    </a> 
    </div> 
</div> 

<div class="item " id="item_3" style=""> 
    <div class="item_click_overlay"> 
    <a href="http://mywebsite.com/forsale/100002/"> 
    <img src="http://mywebsite.com/pics/100002.gif"> 
    </a> 
    </div> 
</div> 
+0

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

+0

Я знаю, извините, но я пробовал как 100 способов, везде искал решение и всегда получал ошибку. Я не спасал свои попытки, я не видел необходимости копировать некоторые несоответствующие коды. И да, ответ будет очень полезен для пользователей, как я уже сказал, я больше ничего не нашел. Благодаря! – JaSon

ответ

1

Что-то вроде этого вы имеете в виду?

var newLink = $(".item.new:first").find('a:first').attr('href'); 
window.location.replace(newLink); 

Или это без JQuery:

var newLink = document.getElementsByClassName('item new')[0].getElementsByTagName('a')[0].href; 
window.location.replace(newLink); 
+0

Спасибо большое! Нижняя работает отлично! (Было бы идеально, если бы это было быстрее, он ждал дольше, чем я думал, но ничего не может быть сделано, я боюсь?) Еще раз спасибо! – JaSon

+0

Ожидание неизбежно, вероятно, до тех пор, пока DOM не будет полностью загружен до выполнения вашего кода. –

0

Укороченный решение МД немного, размещая здесь, как это работает:

document.getElementsByClassName('item new')[0].getElementsByTagName('a')[0].click(); 
Смежные вопросы