Одесса: 5°С (вода 9°С)
Киев: 3°С
Львов: 3°С

Тема: JavaScript

Ответить в теме
Показано с 1 по 8 из 8
  1. Вверх #1

    По умолчанию JavaScript

    Всем привет.
    С чего бы начать. Начал я изучать яваскрипт, и как следствие - захотелось писать свои скрипты под чужие сайты, для удобного пользования ими.

    Ну начать решил с ВК. Думаю многие сталкивались с тем что хочется скачать музычку оттуда. Долго думал как же встроить скрипт в чужую страничку, и наткнулся на GreaseMonkey хорошие расширения для Огнелиса =)
    вобщем написал я свой скрипт, и всё хорошо и работает вот только при попытке поделится им с другом, возникла проблема, у него скрипт не пашет.
    Дело в том что у меня был установлен плагин VKsaver который форматирует код страницы, конкретного куска:

    Код HTML:
    <img class="playimg" onclick="return operate('84267951_60750','http://cs4829.vkontakte.ru/u27542045/audio/572e54596154.mp3',294);" id="imgbutton84267951_60750" nosorthandle="true" src="images/play.gif"/>
    <form onsubmit="var p = ge('player'84267951_60750'');  if (p && 'none' != p.style.display) AudioObject.hidePlayer('84267951_60750', 0, 1); p = ge('playerWall'84267951_60750''); if (p && 'none' != p.style.display) AudioObject.hidePlayer('84267951_60750', 1, 1);"  action="http://audiovkontakte.ru/audio-'84267951_60750'" method="post" target="_blank" style="margin: 0; padding: 0;">
    <input type="hidden" name="vhost_id" value="4829" />
    <input type="hidden"  name="vuser_id"  value="27542045" />
    <input type="hidden" name="vfile" value="572e54596154" />
    <input type="hidden"  name="vdur" value="294" />
    <input type="hidden" name="artist_name" value="example" />
    <input type="hidden"  name="song_name" value="kickstarts (bar 9 remix)" />
    <input type="hidden" name="plugin_ver" value="2.2.2.0" />
    <input type="hidden"  name="plugin_hash" value="61326c199a532883785276138b8bb367" />
    
    </form>
    под это было легко написать скрипт =) просто добавить в форму кнопку с ссылкой которую я сам формировал из первых трёх инпутов, и константных частей.

    код:
    PHP код:
    // ==UserScript==
    // @name           AudioSave
    // @namespace      Gena
    // @description    Save music in vk
    // @include        http://vkontakte.ru/audio*
    // ==/UserScript==


     
    var stringer=new Array();
    for(var 
    i=1;i<document.forms.length;i++)
    {
    stringer[i-1]='http://cs'+document.forms[i].elements[0].value+'.vkontakte.ru/u'+document.forms[i].elements[1].value '/audio/'+document.forms[i].elements[2].value +'.mp3';
     var 
    Inner document.createElement('input');
      
    Inner.type 'button';
      
    Inner.value 'Save';
      
    Inner.name 'saver';
      
     
    Inner.setAttribute('onClick','location.href="'+stringer[i-1]+'"');
      
    document.forms[i].appendChild(Inner);
      
    document.forms[i].elements[8].setAttribute('type''hidden');

    но, удалив VKsaver, я заметил что форма пропала )
    в коде странички вк в нужном фрагменте осталось только

    Код HTML:
    <img class="playimg" onclick="return operate('84267951_60750','http://cs4829.vkontakte.ru/u27542045/audio/572e54596154.mp3',294);" id="imgbutton84267951_60750" nosorthandle="true" src="images/play.gif"/>
    Так вот суть вопроса в следующем: что нужно делать чтобы получить значения первых трёх импутов?
    <input type="hidden" name="vhost_id" value="4829" />
    <input type="hidden" name="vuser_id" value="27542045" />
    <input type="hidden" name="vfile" value="572e54596154" />

    Не имея их в коде, куда и как за ними нужно отправлять запрос =)

    Либо, можно ли перехватить передаваемое значение в onclick="return operate('84267951_60750','http://cs4829.vkontakte.ru/u27542045/audio/572e54596154.mp3',294);" ? тоесть, есть уже готовая ссылка, но она ведь тоже как-то формируется....

    Спасибо за помощь


  2. Вверх #2
    Частый гость Аватар для CrazySquirrel
    Пол
    Мужской
    Возраст
    30
    Сообщений
    900
    Репутация
    95
    ну почему нету в коде вот же они все:
    http://cs4829.vkontakte.ru/u27542045/audio/572e54596154.mp3',294)

    <input type="hidden" name="vhost_id" value="4829" />
    <input type="hidden" name="vuser_id" value="27542045" />
    <input type="hidden" name="vfile" value="572e54596154" />

    Дальше пишем регулярку, разбираем строку, получаем эти параметры, формируем хиден поля.
    Еврейский SQL сервер отвечает запросом на запрос.

  3. Вверх #3
    Частый гость Аватар для CrazySquirrel
    Пол
    Мужской
    Возраст
    30
    Сообщений
    900
    Репутация
    95
    кстати, не понятно, зачем нужно парсить эту строчку, и выдёргивать из неё что либо, если можно просто вырвать 2 операнд функции operate, который является полным путём к файлу, который нужно качать!
    Еврейский SQL сервер отвечает запросом на запрос.

  4. Вверх #4
    Цитата Сообщение от CrazySquirrel Посмотреть сообщение
    кстати, не понятно, зачем нужно парсить эту строчку, и выдёргивать из неё что либо, если можно просто вырвать 2 операнд функции operate, который является полным путём к файлу, который нужно качать!
    Спасибо )) я же говорю что начинающий
    так вот, каким же образом можно вырывать передаваемое значение?
    оно же передаётся а не возвращается, или теми же регулярками?
    мммм
    не знаю, может регулярки не самый лучший вариант. мне же надо знать, в каком теге нашлось совпадение, чтоб под имаджем кнопку влепить.

  5. Вверх #5
    Не покидает форум Аватар для Fallout
    Пол
    Мужской
    Сообщений
    6,915
    Репутация
    795
    Wertixvost, для себя еще не открыли JQuery?

  6. Вверх #6
    Частый гость Аватар для CrazySquirrel
    Пол
    Мужской
    Возраст
    30
    Сообщений
    900
    Репутация
    95
    Цитата Сообщение от Fallout Посмотреть сообщение
    Wertixvost, для себя еще не открыли JQuery?
    100%.


    Взятие таких вещей без jQuery достаточно неудобно.

    В любом случае надо найти в коде закономерность. Тут видно что все "песенки" висят на событии onclick для изображений класса playimg (img class="playimg").
    Для jQuery всё просто
    $('img.playimg').each();

    Для чистого JS надо писать функцию getElementByClass, по аналогии c getElementById. В конечном итоге всё равно приходим к регулярке, которая будет брать строку события onclick, и парсить её, в данном случае парсить просто до уписяться split('\',\''), ну и т.д.
    Еврейский SQL сервер отвечает запросом на запрос.

  7. Вверх #7
    да JQuerry библиотечка хорошая, но я решил попробовать с JS =)
    спасибо )

  8. Вверх #8
    хм , кстати идея то до уписятся простая =) как я сам не додумался?! ) просто так же как брать массив форм, так же взять все имаджи указанного класса ) а потом разбить строку значения атрибута )

    просто по привычке из Си не сразу понял что значение операнда можно стянуть )


Ответить в теме

Похожие темы

  1. JavaScript: проблема
    от NoXX в разделе Программирование
    Ответов: 66
    Последнее сообщение: 08.09.2007, 18:20
  2. JavaScript
    от levis в разделе Программирование
    Ответов: 8
    Последнее сообщение: 07.09.2007, 16:40
  3. Стыковка PHP и JavaScript
    от mel в разделе Программирование
    Ответов: 11
    Последнее сообщение: 20.02.2007, 15:37
  4. Помогите со скриптом JavaScript
    от Emm в разделе Программирование
    Ответов: 7
    Последнее сообщение: 23.12.2006, 20:01
  5. JAVASCRIPT
    от Aksash в разделе Программирование
    Ответов: 5
    Последнее сообщение: 09.10.2005, 16:28

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения