X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Добавляем свой JS на чужой сайт
k0ttee
k0ttee
Topic Starter сообщение 6.12.2014, 20:05; Ответить: k0ttee
Сообщение #1


Дамы и господа, вашему вниманию - басня! Обезьяна и браузер. :hihi:

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

Чтоб подцеплять к чужому сайту свой код надо поставить расширение. В зависимости от браузера зоопарк мартышек будет немного отличаться названиями:

Для Chrome - TamperMonkey
Для Firefox - GreaseMonkey
Для Opera - ViolentMonkey

Чур ставить из официальных источников расширений, иначе рискуете поставить себе вирусню.

Теперь давайте обезьянничать на страницах RuSeo! :D

В панели браузера появится мартышка. Тыком в нее можно включать/выключать её (быстро и удобно).
Прикрепленный файл  снимок21.png ( 1,19 килобайт ) Кол-во скачиваний: 14534

Первым делом зайдем в настройки.
Прикрепленный файл  file.png ( 10,07 килобайт ) Кол-во скачиваний: 12603

Будет удобнее писать код во внешнем редакторе (кнопка выбора есть), но я буду показывать на промере встроенного.
Прикрепленный файл  file_2.png ( 50,61 килобайт ) Кол-во скачиваний: 12603

Нус, начнем портить! :s009: Создаем скрипт.
Прикрепленный файл  file_3.png ( 9,95 килобайт ) Кол-во скачиваний: 12603

Далее надо заполнить обязательные поля, иначе дальше не пустят. Их потом можно будет изменить, если что.
Прикрепленный файл  file_4.png ( 29,87 килобайт ) Кол-во скачиваний: 12603

Получаем наконец окно с кодом...
Прикрепленный файл  file_5.png ( 26,93 килобайт ) Кол-во скачиваний: 12604

Выпиливаем все это нафиг...
Теперь даю строки кода (их вставляем в начале), ну и прокомментирую
// ==UserScript==
// @name      ruseo
// @namespace ruseo
// @include   http://ruseo.net/*
// @include   http://*.ruseo.net/*
// @require   http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
// @resource  my_img http://site.ru/img.png
// @resource  my_text http://site.ru/my_text.txt
// ==/UserScript==

0.) начало пользовательского скрипта
1.) имя
2.) адресное пространство
3.) где подключать (весь домен ruseo.net). Можно по маске отфильтровать нужные типы страниц, на которых надо выполнять скрипт (пример site.ru/*.html).
4.) где подключать (все поддомены ruseo.net). Тоже фильтруемо, ну или тупо списком перечислить нужные страницы (еще пример site.ru/*.php).
5.) подключение jQuery (на случай если на сайте его не подключили до наших обезьянств)
6.) в переменную my_img подгружается картинка по адресу site.ru/img.png (подгружать можно и из своего компа, только вместо http:// надо писать file://)
7.) те же яйца, только с текстовым файлом (да и сам код можно подгружать из интернета, а не держать внутри плагина - так можно делиться своими напильниками)
8.) конец пользовательского скрипта

Теперь вставляем конструкцию:
$(document).ready(function(){
var $=window.jQuery;
//тут писать свой код
});

Манипуляция с символом бакса нужна чтобы jQuery работало. Причем window не даст вмешиваться в уже существующий JS, что избавляет от конфликтов. А еще - кроссбраузерно.
Есть и другие варианты, но они работают не кроссбраузерно.

А документ-реди, чтобы код исполнялся не ранее чем после полной загрузки страницы в браузер.

Все дальнейшие кусочки кода вставлять в место для "своего кода".
Осталась пара тонкостей подключения своих картинок и текстов.
/* обращаться к картинке из внешнего источника (не залитой на RuSeo), можно примерно так */
$("#id").append('<img src="'+GM_getResourceURL("my_img")+'">');
/* а к текстовым файлам примерно так */
$("#id").append('<p>'+GM_getResourceURL("my_text")+'</p>');

Непривычной фигней будет GM_getResourceURL("переменная"), а в остальном - обычный такой JS. И не забывайте подключать внешние тексты или картинки в шапке. Маленькие картинки можно засунуть прямо в текст скрипта, если скукожить их в base64. Тексты, в принципе, тоже можно держать внутри кода.

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


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
airman
airman
сообщение 6.12.2014, 23:39; Ответить: airman
Сообщение #2


k0ttee, и что в конечном итоге получилось? Я так и не понял нафига козе баян :laugh:


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Aman_sf
Aman_sf
сообщение 7.12.2014, 0:05; Ответить: Aman_sf
Сообщение #3


Как я понял, котэ хочет изменять дизайн на других сайтах, без взлма - только ему чтоб так отображалось.
Насколько я помню, такое делалось одним расширением к опере и в хроме было.
Это типа при заходе на сайт он сохраняет изменения, и таким образом можно рекламу отключать и всякие ненужный мусор, цвет сайта изменить и кароче полностью его поменять.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 7.12.2014, 20:46; Ответить: k0ttee
Сообщение #4


что в конечном итоге получилось?

Пока ничего... :unsure: Я в адресных пространствах заблудился - все функции выполняются даже без вызова. Вот осилю доки, тогда будет.
нафига козе баян

Так ведь "хватит это терпеть" же. :laugh: Напилить себе любимому "того и так как хочется".
только ему чтоб так отображалось

Да, именно это (и не только это, а гораздо больше).
рекламу отключать и всякие ненужный мусор, цвет сайта изменить

Для этого хватало расширения Stylish и CSS в нем.
полностью его поменять

JS это программирование а не разметка, так что можно "все". Разве что капча малину испортит.

Добавлено спустя 14 часов 22 минуты 10 секунд:
Как минимум, автопереключалку в 1080/720 (или максимально возможное качество) для ютуба, а то когда плейлисты играют не охото руками переключаться (оно собака слетает). На звук этот выбор качества тоже влияет.
Да, у меня все симптомы типичного питерского "небыдла" или болезни "я не такой как все".


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
reds
reds
сообщение 26.9.2016, 20:32; Ответить: reds
Сообщение #5


Возможно ли как-то обратится к блоку, у которого нет ID, но есть DATA-, вот пример:

<div class="reply_author">
<a class="author" href="/durov" data-from-id="1">Павел дуров</a>
</div>


К нему нужно добавить заранее подготовленную ссылку, чтобы получилось:

<a class="author" href="/durov" data-from-id="1">Павел дуров</a> | [color=#0040FF]<a href="http://youtube.com/durov">YouTube</a>[/color]


----------------

Хочу в одном закрытом сообществе рядом с именами комментаторов вставить ссылки на их Youtube-каналы

Добавлено спустя 47 минут 50 секунд:
Оказалось можно выбрать ссылку по href, сижу, пилю скрипт и довольный такой, типа программёр.

Добавлено спустя 1 час 8 минут 44 секунды:
Эх, оказалось, все не так просто как с css, с трудом сделал то, что мне нужно, но когда уже вздохнул с облегчением, обнаружил, что скрипт не действует на содержимое, которое грузится через ajax. То есть, у последних комментаторов поста вк показываются ссылки, а если развернуть старые комментарии, то все они "Голые".

Вот часть кода:

// ==UserScript==
// @name      VK
// @namespace vk
// @include   https://vk.com/*
// @include   https://*.vk.com/*
// @require   http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
// @resource  my_img http://site.ru/img.png
// @resource  my_text http://site.ru/my_text.txt
// ==/UserScript==

$(document).ready(function(){
var $=window.jQuery;
$("a.author[href$='/ihakimov']").append("   <a class=youtube target=_blank href='http://www.youtube.com/channel/UCQxsLDIGrDPPPOPy9q32Luw'>YOUTUBE</a> "); //REDS
$("a.author[href$='/alisichkalis']").append("   <a class=youtube target=_blank href='https://www.youtube.com/c/Alisichkaschannel2015'>YOUTUBE</a>
});


Вот разворачивалка вк:

<a id="wrh-90926925_4755" class="wr_header" onclick="return wall.showReplies('-90926925_4755', false, false, event);" offs="3/14" href="/wall-90926925_4755?offset=last&f=replies">Показать все 14 комментариев</a>

Пытался создать новый такой же блок кода, но вместо ready вставить (".wr_header").click, но в таком случае при каждом нажатии на кнопку "Развернуть" добавляется новая ссылка туда, где старые, а в развернутом содержании ничего не редактируется.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 3.10.2016, 8:45; Ответить: k0ttee
Сообщение #6


reds, шапка поста писалась в 2014 году... Тогда я юзал Linux. А сегодня мне стыдно за рассказ о GreaseMonkey, об этой обязьяне, которая глючит. Сегодня я предложу писать полноценный плагин, а не воевать с красноглазой обезьяной.


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alerelfi
Alerelfi
сообщение 13.4.2018, 18:46; Ответить: Alerelfi
Сообщение #7


(k0ttee)
Сегодня я предложу писать полноценный плагин, а не воевать с красноглазой обезьяной.

А можно поподробнее здесь. Что подразумевается под полноценным плагином?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 12.5.2018, 15:09; Ответить: k0ttee
Сообщение #8


Что подразумевается под полноценным плагином?

Написать полностью свой плагин, а не пихать свой код в Greasemonkey.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Будет ли склейка сайтов если старый телефон перенести на новый сайт?
1 noviktamw 387 Вчера, 18:31
автор: malamut
Горячая тема (нет новых ответов) Ваш сайт блокирует Роскомнадзор?
29 hollywooduk 6021 Вчера, 11:21
автор: hollywooduk
Открытая тема (нет новых ответов) Раскройте свой потенциал заработка с помощью 2x2 Media Network — вашего пути к выгодным предложениям CPA!
Присоединяйтесь к 2x2 Media Network, вашему надежному партнеру в мире
11 2x2MediaLimited 3298 18.4.2024, 4:22
автор: 2x2MediaLimited
Открытая тема (нет новых ответов) Прототипирование + дизайн + вёрстка = красивый и эффективный сайт под ключ
0 bunneh 462 16.4.2024, 18:02
автор: bunneh
Открытая тема (нет новых ответов) Если в сайт с одними ключами, которые там долго, добавить новую рубрику с новыми ключами
2 Tutich 1333 16.4.2024, 8:27
автор: Tutich


 



RSS Текстовая версия Сейчас: 25.4.2024, 11:32
Дизайн