Правила оформления сообщений в данном топике:
Адрес сайта и страницы, на которой возникла проблема, размещается в тегах [ spoiler][ noindex]http://адрес_сайта/название_страницы[ /noindex][ /spoiler]
Для размещения кода, используйте тег "Code" внутри тега "Spoiler" - [ spoiler][ code]ваш код[ /code][ /spoiler]
или выложите на сайт «Pastebin».
При размещении объемных материалов, используйте тег "Spoiler" - [ spoiler]ваш текст[ /spoiler]
или выложите на сайт «Pastebin».
Размещать изображения в открытом виде. Для размещения скриншотов и других изображений, используйте тег "Spoiler" - [ spoiler][ img]http://ссылка_на_изображение[ /img][ /spoiler]
.
«Можно ответить на любой вопрос, если вопрос задан правильно.»
Платон
«Не каждый вопрос заслуживает ответа.»
Сайрус
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Есть желание обращаться к строкам кода макроса по двум и более переменным, чтобы не прописывать строки заново для каждого iimPlay.
Такой вариант работает, допустим, когда надо играть одинаковую "шапку" для двух разных iimPlay
var main,sec; // общие строки для двух iimPlay main = sec = "CODE:"; main = sec += "FILTER TYPE=IMAGES STATUS=ON" + "\n"; main = sec += "SET !EXTRACT_TEST_POPUP NO" + "\n"; main = sec += "SET !SINGLESTEP YES" + "\n"; main = sec += "TAB T=1" + "\n"; // Произвольно чередуем main += "PROMPT Играем<SP>по<SP>переменной<SP>'main'" + "\n"; sec += "PROMPT Играем<SP>по<SP>переменной<SP>'sec'" + "\n"; main += "PROMPT Играем<SP>по<SP>переменной<SP>'main'" + "\n"; sec += "PROMPT Играем<SP>по<SP>переменной<SP>'sec'" + "\n"; for (;;){ iimPlay(main); iimPlay(sec); }
var main,sec; main = sec = "CODE:"; main = sec += "SET !SINGLESTEP YES" + "\n"; sec += "PROMPT Играем<SP>по<SP>переменной<SP>'sec'" + "\n";//Не игнорирует iimPlay(main) main = sec += "PROMPT Играем<SP>по<SP>переменной<SP>'main'" + "\n"; for (;;){ iimPlay(main); iimPlay(sec); }
Есть варианты, как организовать подобную минификацию кода?
Отредактировано Squatter (11-05-2017 22:55:42)
Отсутствует
Squatter
Может почитаете основы is? Так для разнообразия...
Какой смысл в каждой строке присваивать новое значение переменной main, равное текущему значению переменной sec? Не проще ли в конце записать: main=sec; т.к. результат будет все равно один и тот же.
От сюда и проблема, не понимая основ, вы придумываете велосипед, который не поедет.
Отредактировано InfSub (12-05-2017 08:33:19)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Какой смысл в каждой строке присваивать новое значение переменной main
Для наглядности, чтобы Вы подключив все свои знания нашли ошибку.
Ведь необязательно через присвоение всё делать?
Задумка в упрощении записи. Допустим, чтобы играть общие строки по части составного имени переменной
var a,b; a_b = "CODE:"; a_b += "SET !SINGLESTEP YES" + "\n"; a += "PROMPT играем<SP>'a'" + "\n"; b += "PROMPT играем<SP>'b'" + "\n"; b += "PROMPT играем<SP>'b'" + "\n"; a_b += "PROMPT играем<SP>'a'<SP>или<SP>'b'" + "\n"; for (;;){ iimPlay(a); iimPlay(b); }
var main; var a = "WAIT SECONDS=3"; main += a; iimPlayCode(main);// unknown command: UNDEFINEDWAIT, line 1 (Error code: -910)
или
var main; var a = "CODE:WAIT SECONDS=3"; main += a; iimPlay(main);//RuntimeError: Macro WAIT SECONDS=3.iim was not found (Error code: -930)
Отредактировано Squatter (12-05-2017 21:35:15)
Отсутствует
Для наглядности, чтобы Вы подключив все свои знания нашли ошибку.
Повторюсь еще раз, вы сами себя запутали этими присвоениями, ни какой наглядности в них нет.
По поводу ошибки, возникшей у вас, прочитайте хотя бы основы js.
A Ваш вариант даже так не сработает
Описанный мной пример, будет работать, в описанном вами в первом сообщении коде, но не так, как вы его пытаетесь применить.
Во втором сообщении, вы пытаетесь добавить к переменной не имеющей значение, стоку, результат на лицо.
Обьявленная переменная без значения, всегда равна undefined
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Squatter
Дальнейшее обсуждение данного вопроса, будет считаться флудом, пункт 1.5, правил раздела iMacros:
1.5. ... Для ответов на вопросы, из серии: как сложить a+b в js и аналогичных - есть Google. Подобные сообщения могут быть расценены как флуд.
Учите основы is, все элементарно.
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Описанный мной пример, будет работать, в описанном вами в первом сообщении коде
Теперь понятно.
Рабочий вариант:
Если хочется играть код, повторяющийся для разных iimPlay, чтобы не дублировать его, можно делать следующим образом
var main = "CODE:"; var sec = "CODE:"; // Присваиваем 'a' общую для двух iimPlay шапку var a = "VERSION BUILD=12345\n" + "SET !ERRORIGNORE NO\n" + "SET !SINGLESTEP YES\n" + "TAB T=1\n"; main += a; sec += a; // Играем различный для двух iimPlay сценарий main += "PROMPT Играем<SP>main" + "\n"; sec += "PROMPT Играем<SP>sec" + "\n"; // Снова присваиваем 'a' общие для двух iimPlay строки если нужно a = "URL GOTO=https://forum.mozilla-russia.org/viewtopic.php?pid=736085#p736085\n" + "WAIT SECONDS=1\n" + "SET !ERRORIGNORE YES\n"; main += a; sec += a; sec += "PROMPT Работает" + "\n"; for (;;){ iimPlay(main); iimPlay(sec); }
InfSub Спасибо!
Предыдущие сообщения можно удалить.
Отсутствует
Конечно это не идеальный вариант минификации, но уже более гибко можно подходить к сценариям.
Читайте про js-функцию replace()
Впрочем, ее частично можно заменить iMacros-функцией iimSet(), во всяком случае для части приведенного вами кода.
При этом - код будет более органичен и не будет содержать ненужных вставок, и разрывов, применяемых вами сейчас.
Отредактировано InfSub (13-05-2017 18:44:31)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Доброго времени суток.
Подскажите,кто в теме,как с Википедии и ему подобных сайтов копировать текст.Вот такой код копирует всё HTM ,а вот просто текст ни в какую.
InfSub
Отсутствует
Здравствуйте! Вопрос по теме: скажите, а что это Русские буквы не поддерживаются что ли в списке? То есть если аймакрос берет по списку логины из файла например logins.csv и вставляет в нужое поле, то при наличии Русских букв выдаёт в логинах ошибку. А если символы англоязычные и даже есть всякие знаки типа таких @ _ - ! то работает. А с Русскими буквами ошибку выдаёт. А если Русские буквы убрать и все работает. В чем причина? Это зависит от версии аймакроса? Или нет? У меня не самая последняя версия, но и не старая: 8.6.0.1
Или тут дело не в аймакросе вообще, а в чем-то ином?
Отредактировано genstrijen (13-05-2017 21:06:36)
Отсутствует
genstrijen
какова кодировка файла?
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub та просто взял блокнот, написал туда логинов (сам придумал), какие-то на Русском языке, какие-то на английском. Вот на различных форумах можно регистрироваться с ником состоящим из латинских букв и так же Русскими буквами. Так я там логинов создал и таких и таких. А какая там кодировка... хз, не в курсе дела. Обычная) Какая есть, такая есть)
Отредактировано genstrijen (13-05-2017 21:11:27)
Отсутствует
Прошу прощения.Но ни одна команда для копирования текста,что удалось найти в поиске,не копирует текст в Википедии и ему подобных.
TAG POS=1 TYPE=DIV ATTR=ID:bodyContent EXTRACT=TXT TAG POS=2 TYPE=TD ATTR=TXT:* EXTRACT=TXT TAG POS=1 TYPE=DIV ATTR=ID:posts* EXTRACT=TXTALL TAG POS=1 TYPE=* ATTR=* EXTRACT=TXT TAG POS=1 TYPE=ID ATTR=ALIGN:center&&TXT:*.* EXTRACT=TXT TAG POS=1 TYPE=H1 ATTR=CLASS:mctc_name_tx&&HREF:* EXTRACT=TXT TAG POS=1 TYPE=DIV ATTR=TXT:* EXTRACT=text TAG POS=1 TYPE=P ATTR=TXT:posts* EXTRACT=text TAG POS=1 TYPE=DIV ATTR=CLASS:posts:* EXTRACT=TXT
Отсутствует
genstrijen
Кодировка - должна быть UTF8, по умолчанию - "Блокнот" сохраняет в кодировке ANSI, в этом и проблема
Для "Блокнота": выберите "Сохранить как..." и внизу окна сохранения смените кодировку с ANSI на UFT-8
Как рекомендация: используйте любой продвинутый редактор, AkelPad, Notepad++ и т.д. вместо "Блокнота"
Отредактировано InfSub (13-05-2017 21:20:49)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub, понятно. Спасибо!
Отсутствует
anton3500
данная строка, все нормально экстрактит со страницы:
Добавлено 13-05-2017 21:27:51
SET !EXTRACT_TEST_POPUP NO TAG POS=1 TYPE=DIV ATTR=ID:bodyContent EXTRACT=TXT SAVEAS TYPE=EXTRACT FOLDER=* FILE=wiki.txt
Отредактировано InfSub (13-05-2017 21:27:51)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Создается абсолютно пустой тхт документ.Только цыферки вписались 1,2,3,4.Я четырежды прогнал этот макрос.Что и где я делаю не так.Мозилла и старая и новая.Винда семерка и хп.Комп и бук.Как мне взять оттуда именно текст? И если у Вас скопировалось без проблем,ткните носом меня в ошибку.
Отсутствует
ткните носом меня в ошибку
первая и основная ошибка - не читаем правила форума:
1. Не рекомендуется:
1.2 Задавать вопрос без указания:
1.2.2 Браузера (название, версия).
1.2.3 Версии iMacros'a.
1.2.4 Адреса сайта и страницы, на которой возникла проблема. Адрес размещается в тегах [spoiler][noindex]http://адрес_сайта/название_страницы[/noindex][/spoiler]
Отредактировано InfSub (13-05-2017 22:04:58)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Мозилла-53.0.2 (64-бит)
VERSION BUILD=9030808
Википедия-любая страница.
Пытаюсь скопировать из Википедии заголовок статьи и саму статью.В тхт формате.Заголовок копируется без проблем,а сама статья нет.Копируется только вся страница в нтм формате,если указать нтм.А в тхт никак.Что бы я там не прописывал.Хотя подозреваю,что дело не в кодах,а во мне.Природная глупость,как то не позволяет, найти правильные данные.
SET !ERRORIGNORE YES SET !EXTRACT_TEST_POPUP NO URL GOTO=https://ru.wikipedia.org TAG POS=1 TYPE=A ATTR=TXT:Случайная<SP>статья TAG POS=1 TYPE=H1 ATTR=ID:firstHeading EXTRACT=TXT SET !VAR1 {{!EXTRACT}} SET !EXTRACT NULL TAG POS=1 TYPE=DIV ATTR=ID:bodyContent EXTRACT=HTM SET !VAR2 {{!EXTRACT}} если прописать вот так,то копирования не происходит. TAG POS=1 TYPE=DIV ATTR=ID:bodyContent EXTRACT=TXT
Отсутствует
VERSION BUILD=9030808
https://forum.mozilla-russia.org/viewtopic.php?id=71920
Добавлено 13-05-2017 22:47:17
anton3500
SET !EXTRACT_TEST_POPUP NO URL GOTO=https://ru.wikipedia.org TAG POS=1 TYPE=A ATTR=TXT:Случайная<SP>статья TAG POS=1 TYPE=DIV ATTR=ID:bodyContent EXTRACT=TXT SAVEAS TYPE=EXTRACT FOLDER=* FILE=wiki.txt
Отредактировано InfSub (13-05-2017 22:47:17)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub - Благодарю.Четвертый день мучался.а ларчик просто открывался, оказывается.Всех Вам благ и терпения на Нас( специалистов)- побольше.С уважением, Антон.
Отсутствует
Подскажите, как можно сделать чтоб аймакрос вставлял в поле "логин" ники состоящие из двух слов, например: Иван Василевич, Василий Иванович, Василий Алибабаевич и т.д.? А то он первое слово берет, а второе игнорирует. Понятно что это из-за пробела, но тем не менее такой ник. И пробел из него никуда не убрать.
Как сделать чтоб аймаррос брал из списка (файла logins.csv) оба слова?
Отредактировано genstrijen (17-05-2017 18:34:22)
Отсутствует
genstrijen
Записать их в двойных кавычках
Отредактировано InfSub (17-05-2017 18:48:07)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub спасибо!
Отсутствует