Вот начал рисовать, несильно получается может общими усилиями
вообщем функция должна уметь открывать страницу по порядковому номеру независимо на какой странице был запущен скрипт, закрывать, закрывать все кроме указанной, и проверять существует ли страница
под указанным номером.
vkladki(3,2); function vkladki(par1,par2) { //par1 - номер вкладки по порядку неважно с какой страницы запущен скрипт //par2 - что нужно сделать с вкладкой 1-закрыть, 2-перейти на неё, 3-перейти на неё и закрыть все остальные, 4-проверить существование for (var k=-5;k>=1;k++){ iimPlayCode("TAB T="+k); if (iimGetLastError() == "ОК" ){var first = k; break;} } var sm=0; var t=0; sm=k-first; t=par1+sm; iimPlayCode('TAB T='+t); }
Отредактировано Scorp1978 (05-11-2016 16:51:34)
Отсутствует
for (var k=-5;k>=1;k++){
условие цикла - невыполнимо
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
опс а почему не выполнимо от -5 прибавляем по 1 пока значение не станет больше или равно 1
Можете подправить чтоб данный код начал работать, дальше сам все допишу
Отредактировано Scorp1978 (05-11-2016 17:07:35)
Отсутствует
Scorp1978
тем что цикл будет выполняться только пока условие верно
Добавлено 05-11-2016 17:09:50
-5
больше или равно 1, оно меньше
Добавлено 05-11-2016 17:18:06
Scorp1978
//tabActs() - перейти на 1 вкладку //tabActs(3) - перейти на 3 вкладку //tabActs(3,1) - перейти на 3 вкладку и закрыть //tabActs(3,2) - перейти на 3 вкладку и закрыть все остальные var r=tabActs(2,1); alert(r?'найдена':'не найдена'); function tabActs(a,b){ //a - номер вкладки по порядку неважно с какой страницы запущен скрипт //b - что нужно сделать с вкладкой 1-закрыть 2-перейти на неё и закрыть все остальные var a=a||1,b=b||0,c='SET !TIMEOUT_STEP 0\nTAB T='; while(iimPlayCode(c+'0')==1); if(iimPlayCode(c+a)==1){ switch(b){ case 1: iimPlayCode('TAB CLOSE'); break; case 2: iimPlayCode('TAB CLOSEALLOTHERS'); break; }; return true; }; return false; }
Отредактировано InfSub (05-11-2016 17:18:06)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Вот мой вариант
vkladki(6,2); function vkladki(par1,par2){ //par1 - номер вкладки по порядку неважно с какой страницы запущен скрипт //par2 - что нужно сделать с вкладкой // 1 - закрыть, // 2 - перейти на неё, // 3 - перейти на неё и закрыть все остальные var k=1; var z=0; var error_; do{ iimPlayCode("TAB T="+k); error_=iimGetLastError(); if (iimGetLastError()=='OK'){ k = k-1; z = z+1; iimPlayCode("TAB T="+z);} }while(error_=='OK'); k=k+par1; if (par2==1){iimPlayCode("TAB T="+k);iimPlayCode("TAB CLOSE");return 1;} if (par2==2){iimPlayCode("TAB T="+k);return 1;} if (par2==3){iimPlayCode("TAB T="+k);iimPlayCode("TAB CLOSEALLOTHERS");return 1;} }
Отсутствует
не смог реализовать проверку на существование вкладки.
либо я вас не правильно понял, но выше уже привел пример готового решения с вашими "хотелками"
Добавлено 05-11-2016 19:16:08
добавил ссылку на функцию, в FAQ
Отредактировано InfSub (05-11-2016 19:16:08)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
С переключением вкладок в iMacros есть различные косяки, вот вам заготовка для четкой работы со вкладками.
Вы сами можете добавить необходимые вам функции.
Больше подробностей про баги команды "TAB T=1" можете почитать здесь -
Файл test.js
var Tabs = { _browser: function () { var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator); return wm.getMostRecentWindow("navigator:browser").gBrowser; }(), go: function (tabIndex) { this._browser.selectedTab = this._browser.tabContainer.childNodes[tabIndex - 1]; } };
Tabs.go(1); // переход на первую вкладку iimPlayCode("WAIT SECONDS=3"); Tabs.go(2); iimPlayCode("WAIT SECONDS=3"); Tabs.go(3);
Отредактировано Nagibaka (14-11-2016 17:13:31)
Продвинутые уроки по iMacros+Javascript смотрите на моем блоге(ссылка под аватаром).
Отсутствует