Last active
January 6, 2018 19:03
-
-
Save FlyInk13/aad0ad9ccfa0bd54d69d930105eb9ba7 to your computer and use it in GitHub Desktop.
Пример скрипта изменяющего функции и запросы vk.com!
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name VK editor | |
// @namespace http://tampermonkey.net/ | |
// @version 0.2 | |
// @description Пример скрипта изменяющего функции и запросы vk.com! | |
// @author Flyink13 | |
// @match https://vk.com/* | |
// @grant none | |
// ==/UserScript== | |
function IncludeFunction() { // Обертка для выполнения в скрипта контексте страницы | |
mention_edit = function(tip) { // Функция внедряемая в отрисовку меншона | |
tip.container.querySelector(".mention_tt_data").appendChild(ce("div", { | |
textContent: "MID: " + tip.opts.params.mention | |
})); // Добавляем что-нибудь в контейнер | |
console.log(tip); // Логируем | |
}; | |
mention_res_edit = function(a) { // Изменяем ответ сервера | |
a[1] = a[1].replace("tip.img = ", "mention_edit(tip);\ntip.img = "); // Внедряем функцию | |
return a; // отдаем arguments | |
}; | |
function addEditor(opts) { // Функция создания обертки для изменения запросов и ответов | |
if (typeof opts == "function") // для inline записи | |
opts = { | |
func: opts, | |
argsEditor: arguments[1], | |
resEditor: arguments[2] | |
}; | |
return function edited_function() { // Создаем обертку | |
if (opts.argsEditor) arguments = opts.argsEditor(arguments); // Изменяем параметры запуска функции | |
var res = opts.func.apply(opts.context || this, arguments); // Выполняем оригинальную функцию | |
if (opts.resEditor) res = opts.resEditor(res); // Изменяем ответ функции | |
return res; // Отдаем | |
}; | |
} | |
post_req_editor = function(a) { // Изменяем параметры запроса | |
if (a[0] == "al_wall.php" && a[1].act == "mention_tt") // Если запрос на получение меншона | |
a[2].onDone = addEditor(a[2].onDone, mention_res_edit); // То изменяем его | |
return a; // отдаем arguments | |
}; | |
ajax.post = addEditor(ajax.post, post_req_editor); // Внедряем измение запросов в функцию выполения запросов | |
} | |
window.addEventListener("load", function() { // Ждем загрузки страницы | |
var script = document.createElement('script'); // создаем dom скрипта | |
script.appendChild(document.createTextNode('(' + IncludeFunction + ')();')); // Вкладываем самовызов IncludeFunction | |
(document.body || document.head || document.documentElement).appendChild(script); // Добавляем | |
script.outerHTML = ""; // Убираем | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment