Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.02.2013, 21:10
Новичок на форуме
Отправить личное сообщение для Waspwort Посмотреть профиль Найти все сообщения от Waspwort
 
Регистрация: 26.02.2013
Сообщений: 5

UserJS скрывающий <div>
Нужен юзер скрипт для vk.com, который будет убирать из поисковой выдачи блоки <div class="audio fl_l"></div>, в теле которых содержится слово Remix(в любом регистре).

Код html для примера:

<div class="audio  fl_l" id="audio20546304_173281681" onmouseover="addClass(this, 'over');" onmouseout="removeClass(this, 'over');">
  <a name="20546304_173281681"></a>
  <div class="area clear_fix" onclick="if (cur.cancelClick){ cur.cancelClick = false; return false;} playAudioNew('20546304_173281681')">
    <div class="play_btn fl_l">
      <div class="play_btn_wrap"><table class="vkaudio_down"><tbody><tr><td><div class="play_new" id="play20546304_173281681" style="width:17px;" vk_ok="1"></div></td><td style="vertical-align: top;"><a href="http://cs1-36.userapi.com/d10/3f61152eb01ea4.mp3" download="Andy Stott - Hatch The Plan.mp3" title="Andy Stott - Hatch The Plan.mp3" onclick="return vkDownloadFile(this);" onmouseover="vkDragOutFile(this);"><div onmouseover="vkGetAudioSize('20546304_173281681',this)" class="play_new down_btn" id="down20546304_173281681"></div></a></td></tr></tbody></table></div>
      <input type="hidden" id="audio_info20546304_173281681" value="http://cs1-36.userapi.com/d10/3f61152eb01ea4.mp3,519">
    </div>
    <div class="info fl_l">
      <div class="title_wrap fl_l" onmouseover="setTitle(this);"><b><a href="/search?c[q]=Andy%20Stott&amp;c[section]=audio" onclick="if (checkEvent(event)) { event.cancelBubble = true; return}; Audio.selectPerformer(event, 'Andy Stott'); return false"><span>Andy</span> <span>Stott</span></a></b> – <span class="title"><a href="" onclick="Audio.showLyrics('20546304_173281681',42385265,0); return cancelEvent(event);">Hatch The Plan</a> </span><span class="user" onclick="cur.cancelClick = true;"><small>(<a href="id20546304" exuser="true">E. Stevoriv</a><a id="pupid20546304_300" class="vk_usermenu_btn" onclick="pupShow(event,'id20546304_300','id20546304',this); return false;" onmousedown="event.cancelBubble = true;">▼&nbsp;</a>)</small></span><small class="duration_ fl_r" id="vk_asize20546304_173281681" url="http://cs1-36.userapi.com/d10/3f61152eb01ea4.mp3" dur="519"></small></div>
      <div class="actions">
        <div class="audio_add_wrap fl_r" onmouseover="Audio.rowActive(this, 'Добавить в мои аудиозаписи', [9, 5, 0]);" onmouseout="Audio.rowInactive(this);" onclick="Audio.addShareAudio(this, 173281681, 20546304, '8fb4955b35866bd224', 0, 0); return cancelEvent(event);">
  <div class="audio_add"></div>
</div>
      </div>
      <div class="duration fl_r">8:39</div>
    </div>
  </div>
  <div id="lyrics20546304_173281681" class="lyrics" nosorthandle="1"></div>
</div>

<div class="audio  fl_l" id="audio20546304_185310795" onmouseover="addClass(this, 'over');" onmouseout="removeClass(this, 'over');">
  <a name="20546304_185310795"></a>
  <div class="area clear_fix" onclick="if (cur.cancelClick){ cur.cancelClick = false; return false;} playAudioNew('20546304_185310795')">
    <div class="play_btn fl_l">
      <div class="play_btn_wrap"><table class="vkaudio_down"><tbody><tr><td><div class="play_new" id="play20546304_185310795" style="width:17px;" vk_ok="1"></div></td><td style="vertical-align: top;"><a href="http://cs1-15.userapi.com/d35/746bfb1fca7853.mp3" download="Hatti Vatti feat. Echo Ranks - Great (Andy Stott Remix).mp3" title="Hatti Vatti feat. Echo Ranks - Great (Andy Stott Remix).mp3" onclick="return vkDownloadFile(this);" onmouseover="vkDragOutFile(this);"><div onmouseover="vkGetAudioSize('20546304_185310795',this)" class="play_new down_btn" id="down20546304_185310795"></div></a></td></tr></tbody></table></div>
      <input type="hidden" id="audio_info20546304_185310795" value="http://cs1-15.userapi.com/d35/746bfb1fca7853.mp3,450">
    </div>
    <div class="info fl_l">
      <div class="title_wrap fl_l" onmouseover="setTitle(this);"><b><a href="/search?c[q]=Hatti%20Vatti%20feat.%20Echo%20Ranks&amp;c[section]=audio" onclick="if (checkEvent(event)) { event.cancelBubble = true; return}; Audio.selectPerformer(event, 'Hatti Vatti feat. Echo Ranks'); return false">Hatti Vatti feat. Echo Ranks</a></b> – <span class="title"><a href="" onclick="Audio.showLyrics('20546304_185310795',58018601,0); return cancelEvent(event);">Great (<span>Andy</span> <span>Stott</span> Remix)</a> </span><span class="user" onclick="cur.cancelClick = true;"><small>(<a href="id20546304" exuser="true">E. Stevoriv</a><a id="pupid20546304_308" class="vk_usermenu_btn" onclick="pupShow(event,'id20546304_308','id20546304',this); return false;" onmousedown="event.cancelBubble = true;">▼&nbsp;</a>)</small></span><small class="duration_ fl_r" id="vk_asize20546304_185310795" url="http://cs1-15.userapi.com/d35/746bfb1fca7853.mp3" dur="450"></small></div>
      <div class="actions">
        <div class="audio_add_wrap fl_r" onmouseover="Audio.rowActive(this, 'Добавить в мои аудиозаписи', [9, 5, 0]);" onmouseout="Audio.rowInactive(this);" onclick="Audio.addShareAudio(this, 185310795, 20546304, '8fb4955b35866bd224', 0, 0); return cancelEvent(event);">
  <div class="audio_add"></div>
</div>
      </div>
      <div class="duration fl_r">7:30</div>
    </div>
  </div>
  <div id="lyrics20546304_185310795" class="lyrics" nosorthandle="1"></div>
</div>


А это собственно мой user.js, который не работает ни в одном браузере

$('.audio').each(function(i, v) {
    if (-1 != $(v).html().indexOf('Remix')) {
        $(this).css('display', 'none');
    }
});


Проверял вот здесь http://jsfiddle.net/ все работает.
Что не так с кодом? Помогите пожалуйста его заставить работать в браузере.
Ответить с цитированием
  #2 (permalink)  
Старый 26.02.2013, 21:44
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

может его еще в $() нужно засунуть
на jsside если выбрать nowrap head тоже не будет работать
вместо $(this) поставте $(v)

Последний раз редактировалось vadim5june, 26.02.2013 в 21:48.
Ответить с цитированием
  #3 (permalink)  
Старый 26.02.2013, 22:19
Новичок на форуме
Отправить личное сообщение для Waspwort Посмотреть профиль Найти все сообщения от Waspwort
 
Регистрация: 26.02.2013
Сообщений: 5

сделал вот так:
// @resource [url]http://code.jquery.com/jquery-latest.js[/url]

$(document).ready(function()
}

$('.audio').each(function(i, v) {
    if (-1 != $(v).html().indexOf('Remix')) {
        $(v).css('display', 'none');
    }
});
});


Все равно не работает
Ответить с цитированием
  #4 (permalink)  
Старый 26.02.2013, 22:25
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

а что в 4 строчке скобка не в ту сторону
Ответить с цитированием
  #5 (permalink)  
Старый 26.02.2013, 22:31
Новичок на форуме
Отправить личное сообщение для Waspwort Посмотреть профиль Найти все сообщения от Waspwort
 
Регистрация: 26.02.2013
Сообщений: 5

Спасибо, исправил. Но все равно скрипт так и не заработал. Однако если его внедрить в сам html-код то все прекрасно работает.
Ответить с цитированием
  #6 (permalink)  
Старый 26.02.2013, 23:25
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

А jQuery не забыл подключить? Вобще ради 3 строчек подключать jQuery? Ты случайно не чиноша, которому нужно десять лямов только на создание проекта?
Ответить с цитированием
  #7 (permalink)  
Старый 26.02.2013, 23:31
Новичок на форуме
Отправить личное сообщение для Waspwort Посмотреть профиль Найти все сообщения от Waspwort
 
Регистрация: 26.02.2013
Сообщений: 5

>А jQuery не забыл подключить?
Если скажите как это сделать, буду очень благодарен.
>Ты случайно не чиноша
Да мне как бы рано еще, я даже школу еще не закончил
Ответить с цитированием
  #8 (permalink)  
Старый 27.02.2013, 00:12
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Waspwort
Если скажите как это сделать, буду очень благодарен.
Да проще без jQuery обойтись:

var audios = document.querySelectorAll('.audio');
Array.prototype.forEach.call(audios, function(item, index) {
    if (item.innerHTML.indexOf('Remix') != -1) {
        item.style.display = 'none';
    }
});
Ответить с цитированием
  #9 (permalink)  
Старый 27.02.2013, 00:20
Новичок на форуме
Отправить личное сообщение для Waspwort Посмотреть профиль Найти все сообщения от Waspwort
 
Регистрация: 26.02.2013
Сообщений: 5

Спасибо огромное, все заработало. А как сделать, чтобы регистронезависимо было, т.е ReMix, REMIX, remix и т.д.?
Ответить с цитированием
  #10 (permalink)  
Старый 27.02.2013, 00:26
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Условие тогда должно быть таким:
item.innerHTML.search(/remix/i) != -1
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
расширение chrome как userjs xhugo Общие вопросы Javascript 4 01.02.2013 23:43
userJS доступ к переменным страницы (Chrome) DragorWW Opera, Safari и др. 2 13.07.2011 15:33
Подскажите по UserJs chxal Opera, Safari и др. 1 25.12.2010 22:05
Opera UserJS перевод слов a3work Ваши сайты и скрипты 0 25.11.2010 08:32
Как из userjs FF вызвать функцию из внешнего файла ? pods Общие вопросы Javascript 1 07.01.2010 21:36