Страницы: 1
Понял, благодарю, тему можно закрыть.
Благодарю, сработал способ вызова второго скрипта из первого, третьего из второго.
Я правильно понимаю, что вызов нескольких js скриптов подряд в любом случае приводит не к ожидаемому результату? Т.е. корректно работает исключительно вариант iim из iim?
Добрый день.
Понадобилось подряд вызвать три скрипта .js, код:
URL GOTO=imacros://run/?m=/path/script.js URL GOTO=imacros://run/?m=/path/script1.js URL GOTO=imacros://run/?m=/path/script2.js
следовательно - только в том случае, если в них есть PortableFirefox.ini иначе используется один и тот же профиль из AppData
Этот момент не описал, PortableFirefox.ini используется всегда, поскольку необходим запуск нескольких копий FF.
попробуйте настроить портативный FF на ПК, потом перенесите всю папку с FF на ноут, пути должны быть реальными на обоих ПК, например разместите папку со скриптами в корне диска D: (D:\iMacros) и посмотрите - будет ли работать корректно
Удивительно, но сработало. Установил FF в С:\FireFoxPortable, скрипты поставил в D:\imacros, туда же переместил и скрипты на ноуте. После распаковки архива, все заработало, JS перестал выдавать "s is not defined" (последний час он ругался именно на это, естественно, никакой переменной s в скрипте нет). Кроме того, получается сменить пути на нужные мне.
На всякий случай, архив оставлю, не думаю, что проблема не повторится...
P.S. Проверка показала, что дело все-таки не в правах
…Добрый день.
Сразу оговорюсь, что пользовался поиском и по форуму, и гуглом, и даже яндексом, правда, в последнем случае найти что-либо уже не надеялся вовсе.
Проблема следующая. Имеем на ноуте:
1) FF portable, версия 52.0.2.
2) imacros, версия 8.9.7. Последняя не ставилась принципиально, тьфу-тьфу, и так работает.
3) Скрипты с расширением .js.
В один прекрасный момент, imacros перестает корректно обрабатывать код типа iimPlayCode(''). Некорректность заключается в том, что эти строки просто игнорируются, т.е. не осуществляются переходы GOTO, не работает WAIT и пр.
Что было предпринято:
1) Ставились различные потрабельные версии, в разные папки, следовательно, проблема с профилями исключена.
2) Ставились различные версии самого imacros в только что установленный, голый, FF. В этом случае обнаружен новый глюк. Если установлена не последняя версия, то после выбора папки со скриптами, она не меняется. Т.е. видны исключительно Demo, которые были установлены вместе с аддоном. Если обновитьс
karginaolga
Скрипт:
var io = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService); var file = io.newFile("путь\\до\\файла", "файл.mp4"); var destination = io.newFile("куда\\копируем", ""); file.copyTo(destination, "");
P.S. Час назад мне удалось решить вопрос при помощи командной строки, путем добавления "/C" в аргументы. Мало ли, кому будет полезно, строка будет выглядеть так:
P.P.S. Несмотря на PS хотелось бы понять, как работает IO :)
InfSub
…okkamas_knife
моих трех классов церковно-приходской не хватает для понятия азов. При запуске получаю "IO is not defined", что не очень-то удивило, попробовал следующее:
var io = Components.classes["@mozilla.org/network/io-service"].getService (Components.interfaces.nsIIOService);
Components.classes['@mozilla.org/network/io-service'] is undefined
Не натолкнете, с какой стороны к этому зверю подойти?
InfSub
…Добрый день.
Возникла следующая задача. Необходимо при определенных условиях скопировать mp4 файл из одного места в другое. bat не используется в силу того, что необходимо из imacros (js) передать имя файла.
Я вижу два способа:
1) попытаться "скачать" файл:
2) копирование через командную сроку. Через нее прекрасно работает "copy", "robocopy", однако при вызове
[spoiler][code]var prgpath='C:\\Windows\\system32\\cmd.exe';
//с аргументами
var args
InfSub,
спасибо, мысль уловил, подумаю над реализацией.
InfSub
да, все верно. Как я понимаю, вы намекаете на то, что предложил udalov, т.е. делать в цикле, не перезаписывая файл?
InfSub,
мне необходимо взять одну случайную строку. Есть вариант проще? Единственное, что пришло в голову - это считать полностью, построчно залить в массив, а далее брать рандомный элемент массива.
точно, спасибо!
Тему можно закрыть, разобрался. Стыдно признать, но забыл убрать комментарий со строки, которая отвечала за удаление txt файла, как результат, с каждым последующим открытием, файл рос, как на дрожжах.
udalov
удалено, избыточное цитирование
Все очень просто. После перехода над страницей производятся ручные манипуляции. На разных страницах количество выполняемых действий разное, сколько будет на это потрачено времени - не известно, следовательно ограничивать по времени (WAIT SECONDS) - не вариант.
А есть ли какой-нибудь вариант, типа "слушать", т.е. ожидать нажатия какой-то комбинации клавиш, чтобы продолжить выполнение цикла?
InfSub
Добрый день.
Код следующий:
iimPlayCode('URL GOTO=file:///'+ path + file); iimPlayCode('TAG POS=1 TYPE=PRE ATTR=* EXTRACT=TXT');
P.S. В файле находятся урлы, один из которых извлекается, удаляется из массива, а оставшиеся записываются обратно в файл. По извлеченному урлу происходит переход.
InfSub
…Правила форума: Не рекомендуется: Задавать вопросы, ответы на которые легко находятся поиском
например, поиск по слову: "SAVEAS"
Спасибо, очевидного ответа не нашел, поэтому рискнул спросить.
Отвечу на свой вопрос сам, мало ли кому пригодится:
var str = 123; iimPlayCode('SET !EXTRACT ' + str + '\nSAVEAS TYPE=EXTRACT FOLDER=E:\ FILE=test.csv')
Гугление и чтение мануала мне не помогло.
Есть такая штука:
SAVEAS TYPE=(CPL|MHT|HTM|TXT|EXTRACT|BMP|PNG|JPEG) FOLDER=folder_name FILE=file_name
Но мне кажется, что мой костыль слишком убог.
Страницы: 1