Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.06.2012, 00:47
Аспирант
Отправить личное сообщение для neWjs Посмотреть профиль Найти все сообщения от neWjs
 
Регистрация: 27.05.2012
Сообщений: 48

как встроить скрипт на страницу вк
хочу очистить стену в вк , написал скрипт который будет имитировать нажатие на кнопку удаления , но не знаю как его засунуть и запустить на своей странице
Ответить с цитированием
  #2 (permalink)  
Старый 01.06.2012, 00:57
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

F12
Ответить с цитированием
  #3 (permalink)  
Старый 02.06.2012, 10:44
Аспирант
Отправить личное сообщение для frant32 Посмотреть профиль Найти все сообщения от frant32
 
Регистрация: 03.02.2012
Сообщений: 67

http://habrahabr.ru/post/39214/
эт если через лису сидишь)
а в опере проще)) в настройках js браузера укажи путь и всё)
Ответить с цитированием
  #4 (permalink)  
Старый 02.06.2012, 12:24
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Самый простой удобный вариант это букмарклет. Делашь закладку с адресом вида
javascript:(function(){ /*твой код, не забывать ';' ибо в одну строчку*/ }())
и на нужной странице просто нажимаешь на закладку - код исполнится. Оч удобно если надо быстро что-то поправить под себя на каком-то левом сайте.


__
До сих пор недоумеваю какого хрена создатили браузеров запретили исполнение javascript: напрямую из строки адреса, оставив только через закладки. Кому он мешал то? Те кто не знали так и не знают. Те кто использовал убогие ссылки вида
<a href="javascript:...">...</a>
продолжают их использовать.(и будут продолжать так как в целях совместимости это запретят нескоро)
Остались только те кто использовал эту возможность для быстрого изменения страницы\тестирования букмарклета. Конечно появились всяческие консоли и прочее, но их надо отдельно запускать, открывать - лишние действия.
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 02.06.2012, 12:34
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

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

Делается это так:
(_doc=document).body.appendChild(_doc.createElement("script")).src = "http://путь.ru/к/к/моему/скрипту.js";void 0;


Вводить этот код либо в консоль, либо в букмарклет, как указал Aetae.
Ответить с цитированием
  #6 (permalink)  
Старый 02.06.2012, 14:56
Аспирант
Отправить личное сообщение для neWjs Посмотреть профиль Найти все сообщения от neWjs
 
Регистрация: 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 (читал про него но так и не понял)
Ответить с цитированием
  #7 (permalink)  
Старый 02.06.2012, 15:10
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 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.
Ответить с цитированием
  #8 (permalink)  
Старый 02.06.2012, 15:23
Аспирант
Отправить личное сообщение для neWjs Посмотреть профиль Найти все сообщения от neWjs
 
Регистрация: 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(){})() что бы функцию вызывало после созданий=)
Ответить с цитированием
  #9 (permalink)  
Старый 02.06.2012, 17:35
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

neWjs,
Открываете страницу в Opere, жмете сонтрл+U,
=> http://uploads.ru/i/8/u/Q/8uQd7.png
Вставляете код - жмете - Применить изменения (1.5 секунды максимум
Ответить с цитированием
  #10 (permalink)  
Старый 02.06.2012, 18:52
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Сообщение от Deff Посмотреть сообщение
neWjs,
Открываете страницу в Opere, жмете сонтрл+U,
=> http://uploads.ru/i/8/u/Q/8uQd7.png
Вставляете код - жмете - Применить изменения (1.5 секунды максимум
И так каждый раз на протяжении многих лет юзания вконтактика.
Для того и нужны букмарклеты - нажал и готово.
А если действие нужно не периодически а всегда - тогда уж юзерскрипт.
Консоль нужна лишь для единичных случаев.(ну либо по прямому назначению - отладки своего скрипта)

Вообще конечно я прям таки оброс букмарклетами всяческими, половину уж не упомню для чего. Надо почистить закладки.))
__________________
29375, 35

Последний раз редактировалось Aetae, 02.06.2012 в 18:58.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать скрипт, создающий ссылку на страницу, находящуюся на вашем сервере. Ирина Владимировна Общие вопросы Javascript 1 28.03.2012 19:02
Как реализовать ввод данных в скрипт? Ko1dun Events/DOM/Window 5 13.11.2011 21:33
Как в страницу подгружаемую через AJAX передать $_GET? pagal AJAX и COMET 7 08.11.2011 21:09
Как с помощью JS перенаправить на указанную страницу ? saturn Элементы интерфейса 2 31.10.2011 22:57
как написать скрипт или готовый d4a1 Общие вопросы Javascript 2 24.06.2011 22:47