01.06.2012, 00:47
|
Аспирант
|
|
Регистрация: 27.05.2012
Сообщений: 48
|
|
как встроить скрипт на страницу вк
хочу очистить стену в вк , написал скрипт который будет имитировать нажатие на кнопку удаления , но не знаю как его засунуть и запустить на своей странице
|
|
01.06.2012, 00:57
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
F12
|
|
02.06.2012, 10:44
|
Аспирант
|
|
Регистрация: 03.02.2012
Сообщений: 67
|
|
http://habrahabr.ru/post/39214/
эт если через лису сидишь)
а в опере проще)) в настройках js браузера укажи путь и всё)
|
|
02.06.2012, 12:24
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
Самый простой удобный вариант это букмарклет. Делашь закладку с адресом вида
javascript:(function(){ /*твой код, не забывать ';' ибо в одну строчку*/ }())
и на нужной странице просто нажимаешь на закладку - код исполнится. Оч удобно если надо быстро что-то поправить под себя на каком-то левом сайте.
__
До сих пор недоумеваю какого хрена создатили браузеров запретили исполнение javascript : напрямую из строки адреса, оставив только через закладки. Кому он мешал то? Те кто не знали так и не знают. Те кто использовал убогие ссылки вида
<a href="javascript:...">...</a>
продолжают их использовать.(и будут продолжать так как в целях совместимости это запретят нескоро)
Остались только те кто использовал эту возможность для быстрого изменения страницы\тестирования букмарклета. Конечно появились всяческие консоли и прочее, но их надо отдельно запускать, открывать - лишние действия.
__________________
29375, 35
|
|
02.06.2012, 12:34
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
С букмарклетом могут возникнуть проблемы, если скрипт очень большой. В таком случае его придется подключать динамически.
Делается это так:
(_doc=document).body.appendChild(_doc.createElement("script")).src = "http://путь.ru/к/к/моему/скрипту.js";void 0;
Вводить этот код либо в консоль, либо в букмарклет, как указал Aetae.
|
|
02.06.2012, 14:56
|
Аспирант
|
|
Регистрация: 27.05.2012
Сообщений: 48
|
|
если тупо встроить скрипт и вызвать он не работает , я сделал так
<a href="" onclick="d = document.createElement('script');
d.src='http://cyberua.16mb.com/vk.js';
document.body.appendChild(d);
setTimeout('d()',4000);return false;" >go</a>
и вот сам код очистки если кому интересно
function d(){
console.log("выполняемся=)");
var i,cl, dv,reg,matches,fnc,str,inter;
cl = document.getElementsByClassName("delete_post");
i = cl.length;
reg = /[a-z|0-9]*\..*\(.*\);/ig;
wall.showMore(10);
window.scrollBy(0,9999);
while (i--){
fnc = cl[i].childNodes[1].onclick+"";
matches = fnc.match(reg)[0];
eval(matches);
}
setTimeout(function(){if(cl[0]){d();window.scrollBy(0,9999);wall.showMore(10);}},5000);
}
кстати зачем нужен void 0 (читал про него но так и не понял)
|
|
02.06.2012, 15:10
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от neWjs
|
если тупо встроить скрипт и вызвать он не работает , я сделал так
|
Хреново. Скрипт может и не загрузиться за 4 секунды. А не выполняется ничего по причине того, что Вы ничего в скрипте и не делаете, только определяете функцию.
// окрасивил код на jsbeautifier, больше ничего не делал
function d() {
console.log("выполняемся=)");
var i, cl, dv, reg, matches, fnc, str, inter;
cl = document.getElementsByClassName("delete_post");
i = cl.length;
reg = /[a-z|0-9]*\..*\(.*\);/ig;
wall.showMore(10);
window.scrollBy(0, 9999);
while (i--) {
fnc = cl[i].childNodes[1].onclick + "";
matches = fnc.match(reg)[0];
eval(matches);
}
wall.showMore(10);
setTimeout(function () {
if (cl[0]) {
d();
window.scrollBy(0, 9999);
wall.showMore(10);
}
}, 5000);
}
// где вызов то ?
Тогда уж надо сразу вызывать функцию - дописать снизу d();, или же попробовать " named function expression" (на английском проще звучит).
(function d() {
console.log("выполняемся=)");
var i, cl, dv, reg, matches, fnc, str, inter;
cl = document.getElementsByClassName("delete_post");
i = cl.length;
reg = /[a-z|0-9]*\..*\(.*\);/ig;
wall.showMore(10);
window.scrollBy(0, 9999);
while (i--) {
fnc = cl[i].childNodes[1].onclick + "";
matches = fnc.match(reg)[0];
eval(matches);
}
wall.showMore(10);
setTimeout(function () {
if (cl[0]) {
d();
window.scrollBy(0, 9999);
wall.showMore(10);
}
}, 5000);
})();
Сообщение от neWjs
|
кстати зачем нужен void 0 (читал про него но так и не понял)
|
Если код возвратит значение, то это значение заменит содержимое страницы. Возвращение неопределенного значения ( (function(){})() тоже возвратит undefined) не потянет за собой никаких последствий. Вроде, это сейчас пофиксили, но на всякий случай лучше возвращать undefined из кода.
Последний раз редактировалось melky, 02.06.2012 в 15:13.
|
|
02.06.2012, 15:23
|
Аспирант
|
|
Регистрация: 27.05.2012
Сообщений: 48
|
|
Сообщение от melky
|
Хреново. Скрипт может и не загрузиться за 4 секунды. А не выполняется ничего по причине того, что Вы ничего в скрипте и не делаете, только определяете функцию.
// окрасивил код на jsbeautifier, больше ничего не делал
function d() {
console.log("выполняемся=)");
var i, cl, dv, reg, matches, fnc, str, inter;
cl = document.getElementsByClassName("delete_post");
i = cl.length;
reg = /[a-z|0-9]*\..*\(.*\);/ig;
wall.showMore(10);
window.scrollBy(0, 9999);
while (i--) {
fnc = cl[i].childNodes[1].onclick + "";
matches = fnc.match(reg)[0];
eval(matches);
}
wall.showMore(10);
setTimeout(function () {
if (cl[0]) {
d();
window.scrollBy(0, 9999);
wall.showMore(10);
}
}, 5000);
}
// где вызов то ?
Тогда уж надо сразу вызывать функцию - дописать снизу d();, или же попробовать "named function expression" (на английском проще звучит).
(function d() {
console.log("выполняемся=)");
var i, cl, dv, reg, matches, fnc, str, inter;
cl = document.getElementsByClassName("delete_post");
i = cl.length;
reg = /[a-z|0-9]*\..*\(.*\);/ig;
wall.showMore(10);
window.scrollBy(0, 9999);
while (i--) {
fnc = cl[i].childNodes[1].onclick + "";
matches = fnc.match(reg)[0];
eval(matches);
}
wall.showMore(10);
setTimeout(function () {
if (cl[0]) {
d();
window.scrollBy(0, 9999);
wall.showMore(10);
}
}, 5000);
})();
Если код возвратит значение, то это значение заменит содержимое страницы. Возвращение неопределенного значения ( (function(){})() тоже возвратит undefined) не потянет за собой никаких последствий. Вроде, это сейчас пофиксили, но на всякий случай лучше возвращать undefined из кода.
|
блин а я как то не подумал сделать такую конструкцию function(){})() что бы функцию вызывало после созданий=)
|
|
02.06.2012, 17:35
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
neWjs,
Открываете страницу в Opere, жмете сонтрл+U,
=> http://uploads.ru/i/8/u/Q/8uQd7.png
Вставляете код - жмете - Применить изменения (1.5 секунды максимум
|
|
02.06.2012, 18:52
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
Сообщение от Deff
|
neWjs,
Открываете страницу в Opere, жмете сонтрл+U,
=> http://uploads.ru/i/8/u/Q/8uQd7.png
Вставляете код - жмете - Применить изменения (1.5 секунды максимум
|
И так каждый раз на протяжении многих лет юзания вконтактика.
Для того и нужны букмарклеты - нажал и готово.
А если действие нужно не периодически а всегда - тогда уж юзерскрипт.
Консоль нужна лишь для единичных случаев.(ну либо по прямому назначению - отладки своего скрипта)
Вообще конечно я прям таки оброс букмарклетами всяческими, половину уж не упомню для чего. Надо почистить закладки.))
__________________
29375, 35
Последний раз редактировалось Aetae, 02.06.2012 в 18:58.
|
|
|
|