okkamas_knife
А зачем вот это var lnks=window.content.document.getElementsByTagName("A")
В смысле зачем тут и window и content?
И ещё почему textContent, ведь у ссылки есть свойство text ?
Отредактировано rbfyec (10-03-2015 14:30:20)
Отсутствует
okkamas_knife
Так я и думал что в кнопке не запустить VBScript (.vbs), но оказалось что можно записать VBScript код в текстовой файл с расширением имени файла .vbs на диске или просто в профиле FF и запустить как обычный файл и тогда можно из кнопки делать разные штуки, например:
// Свернуть все окна ................ var VBScript = "Option Explicit\ \nDim objShell\ \nSet objShell = CreateObject(\x22Shell.Application\x22)\ \nobjShell.ToggleDesktop\ \nSet objShell = Nothing"; var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.append("processTerminate.vbs"); custombuttonsUtils.writeFile(file.path, VBScript); file.launch();
или закрыть все указанные процессы:
// Закрыть все процессы 'notepad.exe' ................ var VBScript = 'strComputer = "."\ \nSet objWMIService = GetObject("winmgmts:" _\ \n& "{impersonationLevel=impersonate}!\\\\" & strComputer & "\\root\\cimv2")\ \nSet colProcessList = objWMIService.ExecQuery _\ \n("Select * from Win32_Process Where Name = \x27notepad.exe\x27")\ \nFor Each objProcess in colProcessList\ \nobjProcess.Terminate()\ \nNext'; var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.append("processTerminate.vbs"); custombuttonsUtils.writeFile(file.path, VBScript); file.launch();
Вместо notepad.exe в коде можно указать любые другие процессы и главное - при закрытие процесса на экране не мелькает консоль в отличие от использования taskkill.exe
Отсутствует
Какая команда делает Move to Next Link or Form Element in a Web Page?
или иначе какая команда выполняется при нажатии TAB?
Ни какая команда. Это работает без команд.
Отсутствует
Ни какая команда. Это работает без команд.
А как сделать, если я хочу открыть FindBar - фокус при этом будет в gFindBar._findField - а потом программно переместить фокус на кнопку "Далее".
Или на любой другой элемент?
Я пробовал эмулировать нажатие TAB, но это только двигает курсор в текстовых полях, но фокус по элементам не перемещает.
Отредактировано rbfyec (12-03-2015 00:27:08)
Отсутствует
Ни какая команда. Это работает без команд.
А как сделать, если я хочу открыть FindBar - фокус при этом будет в gFindBar._findField - а потом программно переместить фокус на кнопку "Далее".
Или на любой другой элемент?
Наверно можно испльзовать .focus(); но кажется это не везде работает. И можно по всякому, к примеру: window.content.document.getElementsByTagName("A")[35].style.color = "red";.
А зачем тебе фокус на кнопку "Далее" или на любой другой элемент?
Отредактировано bunda1 (12-03-2015 00:45:25)
Отсутствует
А зачем тебе фокус на кнопку "Далее" или на любой другой элемент?
У меня есть кнопочка с кодом
Но получается вот что. Если я выделяю слово на странице, кликаю кнопку, а в поле FindBar-а осталось с прошлого поиска такое же слово, то выделение на странице становится серым.
То есть если
выделение становится серым и если я жму кнопку "Далее" то подсвечивается не следующее совпадение, а это же самое слово. При этом выделение из серого становится нормальным. И только повторное нажатие "Далее" перебрасывает к следующему совпадению.
Я заметил, что когда выделение серое, нажатие клавиши TAB делает его нормальным. Вот я и хочу вроде как открыть gFindBar и тут же программно нажать TAB.
Отредактировано rbfyec (12-03-2015 01:14:15)
Отсутствует
rbfyec
Ну тогда открывай FindBar вот так:
gFindBar._findField.value = content.getSelection(); gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close();
Отсутствует
rbfyec
Ну тогда открывай FindBar вот так:Выделить кодКод:
gFindBar._findField.value = content.getSelection(); gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close();
bunda1
Я сделал, но получается фигня какая-то.
1. Если в gFindBar._findField было пусто или оставалось слово, но не то, которое я буду выделять
а) если я выделяю слово и оно первое совпадение на видимой части страницы (без скролла), то слово подсвечивается серым. Нажимаю "Далее" - подсветка становится зелёной. Нажимаю ещё раз "Далее" - перескакивает к следующему совпадению и дальше уже ищет нормально.
б) если я выделяю слово и оно НЕ первое совпадение на видимой части страницы, то опять же подсвечивается серым. Нажимаю "Далее" - перескакивает к первому совпадению на видимой части страницы. Последующие нажатия "Далее" - ищет уже нормально в обычном порядке. Причём перескакивает к первому совпадению, если выделить просто текст, а если ссылку - то этого не наблюдается.
2. Если в gFindBar._findField оставалось то самое слово, которое я буду выделять
выделяю слово - цвет выделения серый. Нажимаю "Далее" - перескакивает к следующему совпадению, которое уже подсвечивается нормальным зелёным цветом и дальше ищет нормально.
Отредактировано rbfyec (12-03-2015 14:52:02)
Отсутствует
rbfyec
Попробуй:
gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close(); setTimeout(function() { gFindBar._find() }, 10);
или кнопку [CB]Toggle Find+ | Форум Mozilla Россия
Отсутствует
rbfyec
Попробуй:Выделить кодКод:
gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close(); setTimeout(function() { gFindBar._find() }, 10);
Этот код работает
А по поводу кнопки [CB]Toggle Find+ - так это на её основе я и собрал себе кнопочку. Просто далеко не весь функционал оттуда мне нужен.
Спасибо за помощь !!!
Отсутствует
помогите пожалуйста разобраться в чём ошибка. Структура кода такая:
attack = 0;
for (var i = 0; i < lnks.length ; i++){
if (условие1){
if (условие2){
if (условие3){
attack = 1;
alert(attack);
}
}
if (условие4){
lnks[i].click();
}
if (условие5){
if (условие5){
lnks[i].click();
}
}
}
}
такое ощущение что я где-то перемудрил с фигурными скобками
если убрать кусок с условиями 4 и 5, то всё работает..но они нужны
и ещё, если не сложно, подскажите когда нужно (и когда не нужно) ставить в конце строки ";"
если что вот сам код:
if (lnks[i].textContent.indexOf('Ловкость')!==-1){
if (lnks[i+1].textContent <60){
//alert(lnks[i+1].textContent+"1");
attack = 1;
alert("в бой");
}else{
//alert("мимо");
}
}
if (lnks[i].href.indexOf('move=left')!==-1){
lnks[i].click();
}
if (lnks[i].href.indexOf('west')!==-1){
lnks[i].click();
}
if (lnks[i].href.indexOf('move=battle')!==-1){
alert("атака"+attack);
if (attack==1){
lnks[i].click();
}
}
if (lnks[i].href.indexOf('runaway')!==-1){
alert("мимо"+attack);
if (attack==0){
lnks[i].click();
}
}
}
}
Отредактировано lvlaksim (14-03-2015 09:35:57)
Отсутствует
хорошо! но тут проблема не в этом. В данном случае сравнение всётаки происходит, что подтверждается если поставить алерты.
проблема где-то дальше...
внёс проверку на число - всё по прежнему.
вот такой код работает:
//if (lnks[i+1].textContent <60){
//alert(lnks[i+1].textContent+"1");
//attack = 1;
}else{
//alert(lnks[i+1].textContent+"0");
attack = 0;
}
}
}
}
if (attack==0){
alert("мимо")
}else{
alert("в бой")
}
//if (lnks[i+1].textContent <60){
//alert(lnks[i+1].textContent+"1");
//attack = 1;
}else{
//alert(lnks[i+1].textContent+"0");
attack = 0;
}
}
}
}
for (var i = 0; i < lnks.length ; i++){
if (lnks[i].href){
if (attack==1){
if (lnks[i].href.indexOf('move=battle')!==-1){ //атака
alert("атака"+attack);
lnks[i].click();
}//закрыто условие с move=battle (атака1)
if (lnks[i].href.indexOf('move=left')!==-1){ //лево
lnks[i].click();
}//закрыто условие с move=left (атака1)
if (lnks[i].href.indexOf('west')!==-1){ //запад
lnks[i].click();
}//закрыто условие с west (атака1)
}else{//если attack=0
if (lnks[i].href.indexOf('runaway')!==-1){ //убегать
lnks[i].click();
}//закрыто условие с runaway (атака0)
if (lnks[i].href.indexOf('west')!==-1){ //запад
lnks[i].click();
}//закрыто условие с west (атака0)
}//закрыто условие с attack==1
}//закрыто условие с href
}//закрыто условие for
Отредактировано lvlaksim (14-03-2015 10:58:10)
Отсутствует
алгоритм очень несложный:
в коде текущей странице ищется в тексте тегов "td" ищется слово "Ловкость".
Текст следующего после найденного тега сравнивается с числом 60
если меньше 60, то attack=1
если больше 60, то attack=0
далее в коде текущей страницы в ссылках тегов "А" ищем определённые куски текста.
если attack=1, то один набор "кусков"
если attack=0, то другой набор "кусков"
и при совпадении кликаем ссылку
немного обновил код, как мне кажется он стал правильнее...но всё равно не работает (
//if (lnks[i+1].textContent <60){
//alert(lnks[i+1].textContent+"1");
//attack = 1;
}else{
//alert(lnks[i+1].textContent+"0");
attack = 0;
}//закрыто условие с stat_l <60
}//закрыто условие с Ловкость
}//закрыто условие с textContent
}//закрыто for
var lnks=window.content.document.getElementsByTagName("A");//получаем все ссылки со страницы
for (var i = 0; i < lnks.length ; i++){
if (lnks[i].href){
if (attack==1){
alert("да");
if (lnks[i].href.indexOf('move=battle')!==-1){ //атака
alert("атака"+attack);
lnks[i].click();
}//закрыто условие с move=battle (атака1)
if (lnks[i].href.indexOf('move=left')!==-1){ //лево
lnks[i].click();
}//закрыто условие с move=left (атака1)
}//закрыто условие с action=battle (атака1)
if (lnks[i].href.indexOf('move=left')!==-1){ //лево
lnks[i].click();
}//закрыто условие с action=left (атака1)
if (lnks[i].href.indexOf('west')!==-1){ //запад
lnks[i].click();
}//закрыто условие с west (атака1)
}else{//если attack=0
if (lnks[i].href.indexOf('runaway')!==-1){ //убегать
lnks[i].click();
}//закрыто условие с runaway (атака0)
if (lnks[i].href.indexOf('west')!==-1){ //запад
lnks[i].click();
}//закрыто условие с west (атака0)
}//закрыто условие с attack==1
}//закрыто условие с href
}//закрыто for
Отредактировано lvlaksim (14-03-2015 12:00:16)
Отсутствует
Текст следующего после найденного тега и lnks[i+1] совсем разные вещи
может я неправильно выразился..в коде страницы это выглядит так:
<td align="right">Ловкость:</td>
<td><b>14</b></td>
и вот этот код:
//if (lnks[i+1].textContent <60){
//alert(lnks[i+1].textContent+"1");
//attack = 1;
}else{
//alert(lnks[i+1].textContent+"0");
attack = 0;
alert(stat_l)
}
}
}
}
if (attack==0){
alert("мимо")
}else{
alert("в бой")
}
вопрос во следующем - почему не работает вторая половина в которой заново перебираются все элементы, но уже по тегу "A" и с учётом полученого значения attack
//if (lnks[i+1].textContent <60){
//alert(lnks[i+1].textContent+"1");
//attack = 1;
}else{
//alert(lnks[i+1].textContent+"0");
attack = 0;
}//закрыто условие с stat_l <60
}//закрыто условие с Ловкость
}//закрыто условие с textContent
}//закрыто for
var lnks=window.content.document.getElementsByTagName("A");//получаем все ссылки со страницы
for (var i = 0; i < lnks.length ; i++){
if (lnks[i].href){
if (attack==1){
alert("да");
if (lnks[i].href.indexOf('move=battle')!==-1){ //атака
alert("атака"+attack);
lnks[i].click();
}//закрыто условие с move=battle (атака1)
if (lnks[i].href.indexOf('move=left')!==-1){ //лево
lnks[i].click();
}//закрыто условие с move=left (атака1)
}//закрыто условие с action=battle (атака1)
if (lnks[i].href.indexOf('move=left')!==-1){ //лево
lnks[i].click();
}//закрыто условие с action=left (атака1)
if (lnks[i].href.indexOf('west')!==-1){ //запад
lnks[i].click();
}//закрыто условие с west (атака1)
}else{//если attack=0
if (lnks[i].href.indexOf('runaway')!==-1){ //убегать
lnks[i].click();
}//закрыто условие с runaway (атака0)
if (lnks[i].href.indexOf('west')!==-1){ //запад
lnks[i].click();
}//закрыто условие с west (атака0)
}//закрыто условие с attack==1
}//закрыто условие с href
}//закрыто for
Отредактировано lvlaksim (14-03-2015 13:13:28)
Отсутствует
Подскажите пожалуйста, можно ли сделать кнопку, которая бы из файла proxy.txt брала произвольный прокси вида 190.12.30.158:3128 и использовала его в ФФ? Еще одно нажатие на кнопку и другой прокси из этого файла
Спасибо за любую помощь!
Отсутствует
Подскажите пожалуйста, можно ли сделать кнопку, которая бы из файла proxy.txt брала произвольный прокси вида 190.12.30.158:3128 и использовала его в ФФ? Еще одно нажатие на кнопку и другой прокси из этого файла
Спасибо за любую помощь!
Можно, но лучше список хранить в вкладке кнопки Справка, посмотри кнопки Переключить JavaScript для сайтов и Proxy там всё есть для этого + Случайное целое от min до max | Учебник JavaScript
Отсутствует
Sekotka пишетПодскажите пожалуйста, можно ли сделать кнопку, которая бы из файла proxy.txt брала произвольный прокси вида 190.12.30.158:3128 и использовала его в ФФ? Еще одно нажатие на кнопку и другой прокси из этого файла
Спасибо за любую помощь!Можно, но лучше список хранить в вкладке кнопки Справка, посмотри кнопки Переключить JavaScript для сайтов и Proxy там всё есть для этого + Случайное целое от min до max | Учебник JavaScript
Спасибо, я умею уже в переменных брать рандомную строчку из файла, эта часть для меня не вызывает вопросов, но как именно задать чтобы прокси вида 190.12.30.158:3128 становились актуальным прокси, какой командой я так и не понял...
Добавлено 15-03-2015 13:38:21
Т.е. переменная prox тут взята из файла:
var path = "с:\\proxy\\proxy.txt"; var refs = custombuttonsUtils. readFile (path); refs = refs. split (/[\r\n]{1,2}/); if (refs. length != 0) { var prox = Math. floor (Math. random () * refs. length); }
А как эту переменную prox разбить на ip сервера и порт и использовать как прокси?
Отредактировано Sekotka (15-03-2015 13:38:21)
Отсутствует
А как эту переменную prox разбить на ip сервера и порт и использовать как прокси?
.split(":")
var pref = 'network.proxy.http_port';
var pref = 'network.proxy.http';
Application.prefs.setValue( pref, sel ); // переключить настройки прокси
Отсутствует
Sekotka пишет: А как эту переменную prox разбить на ip сервера и порт и использовать как прокси?.split(":")var pref = 'network.proxy.http_port';var pref = 'network.proxy.http'; Application.prefs.setValue( pref, sel ); // переключить настройки прокси
Не работает, может я что-то не так делаю?
Отсутствует
И не должно работать, это просто нужные данные для тебя.
Спасибо за помощь!
Может кто-нибудь подскажет, как использовать эти данные для переменной prox, содержащей вид типа 190.12.30.158:3128 ? Если можно с конкретикой, как я понимаю там несколько строчек кода, но для меня это темный лес.
Отредактировано Sekotka (15-03-2015 14:53:29)
Отсутствует