Правила оформления сообщений в данном топике:
Адрес сайта и страницы, на которой возникла проблема, размещается в тегах [ 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)!
Отсутствует
В массиве имею 1 элемент такого вида "30000,8889,10700,30000руб"
Мне нужно разбить их, то есть каждое число после запятой сделать отдельными элементами в массиве и без "руб".
var XMLHttpRequest=Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1"); var b=XMLHttpRequest();b.open('GET',ссылка,false);b.send(''); var txt = b.responseText; var результат = txt.replace(/&\#160;|<td>| |,00|<span class="caption-subject bold">/g,'').match(/.*руб/g) var массив = [] массив.push(результат) alert(массив.join('\n').split('руб,')) var массив = массив.split(',') alert(массив[1])
Отредактировано Алим (16-07-2019 12:59:55)
Истина в последней инстанции
Отсутствует
попробуй так
...........match(/.*руб/g)
...........match(/\d+/g)
Отредактировано PRESIDENT (16-07-2019 16:13:45)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Алим
после match вы не сможете использовать ни replace ни split
и вам об этом ни раз писали.
Отсутствует
PRESIDENT
Отредактировано dim222 (16-07-2019 17:00:21)
Отсутствует
karginaolga благодарю, теперь буду знать.
Я думал, что надо в строку перевести. но делал не правильно .str добавлял в конце.
Забыл про .toString().
Ещё возник вопрос. В документе имеется одна строчка с переносом строки \n, пробывал и \\n и <br>
Но не делает перенос строки при вставке, а вставляет вместе со знаком переноса.
Как сделать, чтобы вставлял с переносом строки?
Может прежде, чем вставлять .textContent=txt, нужно преобразовать iimGetExtract().метод ?
iimPlayCode('SET !ERRORIGNORE YES\n'+ 'SET !DATASOURCE_DELIMITER #\n'+ 'SET !DATASOURCE doc.txt\n'+ 'SET !DATASOURCE_LINE 1\n'+ 'SET !EXTRACT {{!COL1}}') var txt = iimGetExtract() content.document.getElementsByClassName('posting_itx')[0].textContent=txt
Отредактировано Алим (19-07-2019 12:50:48)
Истина в последней инстанции
Отсутствует
Алим
с переносом строки или с символами "\n" внутри текста? это как бы не одно и то же.
Перенос строки не будет считан тем методом, который вы используете, так как чтение идёт построчно
Вставляйте уникальный тег, например тот же <br> и заменяйте его replace'ом в переменной на \r\n или на \n перед вставкой в форму
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub
replace(/<br>/,"\n") помогло.
Когда ссылка на сайт набирается по методу iim-event , появляется картинка от сайта, а когда идёт вставка методом js-dom, то не появляется. Можно ли решить это по средством js-dom или js ?
Отредактировано Алим (19-07-2019 15:46:05)
Истина в последней инстанции
Отсутствует
Алим
а что собственно решить?
чтобы появлялась или чтобы не появлялась?
разве ваш ответ не содержит ответ на этот вопрос?
Добавлено 19-07-2019 17:48:35
event по сути работает по с помощью того же dom
проанализируйте его код и перепешите в js
Отредактировано InfSub (19-07-2019 17:48:35)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Подскажите как лучше всего закрывать Мазилу js-скриптом? Есть минимум 2 способа: через создание батника и команду
Отредактировано saurbeck (22-07-2019 22:34:50)
Отсутствует
Держите памятку
var browserWin = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor) .getInterface(Components.interfaces.nsIWebNavigation) .QueryInterface(Components.interfaces.nsIDocShellTreeItem) .rootTreeItem .QueryInterface(Components.interfaces.nsIInterfaceRequestor) .getInterface(Components.interfaces.nsIDOMWindow); //Закрыть активную вкладку browserWin.getBrowser().removeCurrentTab(); //Закрыть активную вкладку this.window.close(); //Закрыть все вкладки слева, кроме закреплённых вкладок browserWin.gBrowser.visibleTabs.forEach((tab)=> !tab.pinned && tab._tPos < browserWin.gBrowser.mCurrentTab._tPos && browserWin.gBrowser.removeTab(tab)); //Закрыть все вкладки, кроме закреплённых вкладок [...browserWin.gBrowser.tabs].forEach((tab)=> !tab.pinned && browserWin.gBrowser.removeTab(tab)); //Закрыть все вкладки справа с подтверждением browserWin.gBrowser.removeTabsToTheEndFrom(browserWin.gBrowser.mCurrentTab); //Закрепить вкладку browserWin.gBrowser.pinTab(browserWin.gBrowser.mCurrentTab); //Закрепить вкладку, если откреплена и открепить вкладку если закреплена var currTab = browserWin.gBrowser.mCurrentTab; currTab.pinned ? browserWin.gBrowser.unpinTab(currTab) : browserWin.gBrowser.pinTab(currTab);
var browserWin = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor) .getInterface(Components.interfaces.nsIWebNavigation) .QueryInterface(Components.interfaces.nsIDocShellTreeItem) .rootTreeItem .QueryInterface(Components.interfaces.nsIInterfaceRequestor) .getInterface(Components.interfaces.nsIDOMWindow); //Закрыть все вкладки [...browserWin.gBrowser.tabs].forEach((tab)=> browserWin.gBrowser.removeTab(tab));
browser.tabs.warnOnClose (Логическое) - определяет: показывать или нет предупреждение о закрытии нескольких вкладок.
TRUE - показывать
FALSE - не показывать
browser.taskbar.previews.enable (Логическое) - Определяет: показывать ли вкладке в "супербаре" windows 7.
TRUE - показывать
FALSE - не показывать
browser.tabs.tabMaxWidth (Целое) - Максимальная ширина вкладок (в пикселях).
browser.tabs.tabMinWidth (Целое) - Минимальная граница ширины вкладок (в пикселях), после которой появляется кнопка прокрутки вкладок.
browser.tabs.tabClipWidth (Целое) - Ширина вкладки (в пикселях), начиная с которой пропадает крестик.
browser.tabs.closeButtons (Целое) - Наличие кнопки "закрыть" на вкладках. Значения:
0 - показывать кнопку закрытия только на активной вкладке
1 - показывать кнопки закрытия на всех вкладках
2 - вообще не показывать кнопки закрытия
3 - показывать единственную кнопку закрытия в конце панели вкладок (так было в Firefox 1.x)
browser.tabs.closeWindowWithLastTab (Логическое) - Определяет: закрывать ли браузер при закрытии последней вкладки. Значения:
TRUE – закрывать окно при закрытии последней вкладки.
FALSE - Окно закрываться не будет.
Отредактировано Squatter (23-07-2019 00:52:57)
Отсутствует
Спасибо за памятку по вкладкам! Полезная вещь!
С taskkill видимо некорректное закрытие, поэтому браузер предлагает восстановить параметры последнего сеанса – всё что было открыто. Стандартная вещь.
А из-за чего некорректное закрытие? У меня ведь так: js-скрипт отработал, запустил батник и остановился. При этом батник запустился, но браузер ещё 10 секунд просто отдыхает. И только после 10 секунд батник даёт команду taskkill которая закрывает браузер. Однако каждый раз как только по новой запускаю браузер (хоть вручную, хоть скриптом) всегда этот запрос на восстановление вкладок.
Прям ерунда какая-то. На Икспишке (5 лет назад) такого не было. А на 10-ке есть. Хотя с операционкой это наверно вообще никак не связано. Но тем не менее, запрос на восстановление вкладки есть и не понятно почему и как от этого избавиться?
Отсутствует
saurbeck чем вариант закрытия всех вкладок, а заодно и браузера, не устраивает?
Вы понимаете, что taskkill вы в лоб завершаете процесс, а не корректно закрываете браузер? Попробуйте вручную завершить процесс "firefox.exe" в диспетчере задач, и вы получите тот же результат.
Отредактировано Squatter (23-07-2019 01:25:24)
Отсутствует
как от этого избавиться?
Components.utils.import("resource://gre/modules/Services.jsm"); Services.startup.quit(Services.startup.eForceQuit);
Components.utils.import("resource://gre/modules/Services.jsm"); Services.startup.quit(Services.startup.eAttemptQuit | Services.startup.eRestart);
Отредактировано dim222 (23-07-2019 07:52:09)
Отсутствует
При перезапуске - батник не нужен, просто установи запуск своего кода на домашней странице.
Вообще-то батник нужен. потому что кроме браузера там ещё и другую прогу перезапускать периодически надо. Да и сам браузер должен перезапускаться не сразу, а через определенное время (несколько минут после закрытия). Поэтому как тут без батника обойтись? Наверно никак
Отредактировано saurbeck (23-07-2019 08:47:33)
Отсутствует
saurbeck, что мешает перезапускать другую программу батником, а браузер закрывать через таймаут одним из вышеописанных способов?
Отсутствует
браузер закрывать через таймаут одним из вышеописанных способов?
пожалуй так и сделаю: сначала закрою все вкладки кроме активной, а потом применю простую команду TAB CLOSE (предварительно в настройках браузера установив галочку "закрывать браузер при закрытии последней вкладки")
Отредактировано saurbeck (23-07-2019 09:20:25)
Отсутствует
saurbeck, касательно батника, нужно корректно отправить WM_CLOSE. Сигнализировать завершение в приложение. В батник
Отсутствует
saurbeck, касательно батника, нужно корректно отправить WM_CLOSE. Сигнализировать завершение в приложение. В батник
Вообще-то я так закрываю
Отредактировано saurbeck (23-07-2019 09:49:05)
Отсутствует
Без F параметра
Ааа, так вот в чём загвоздка была. Попробую без F. Кстати, а что это за F, для чего?
Добавлено 23-07-2019 09:58:30
уже нашёл:
/F - Принудительное завершение процесса.
Отредактировано saurbeck (23-07-2019 09:58:30)
Отсутствует
SET processName="Firefox.exe" SET pathToFirefox=D:\FAERFOX taskkill.exe /F /IM %processName% timeout /T 2 /NOBREAK erase /F /Q %pathToFirefox%\Data\profile\*.sqlite erase /F /Q %pathToFirefox%\Data\profile\*.sqlite-shm erase /F /Q %pathToFirefox%\Data\profile\*.sqlite-wal erase /F /Q %pathToFirefox%\Data\profile\sessionstore.js erase /F /Q /S %pathToFirefox%\Data\profile\cache2 erase /F /Q /S %pathToFirefox%\Data\profile\OfflineCache erase /F /Q /S %pathToFirefox%\Data\profile\safebrowsig erase /F /Q /S %pathToFirefox%\Data\profile\startupCache erase /F /Q /S %pathToFirefox%\Data\profile\thumbnails exit
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
PRESIDENT ИМХО, это уже избыточно.
Вполне достаточно
Отсутствует
Добрый день.
Помогите с каким-нибудь актуальным туториалом.
Хочу выполнить js скрипт.
Нашёл такой способ, но он, кажется, давно устарел
Ну и оно не работает.
Как на данный момент можно выполнить js с помощью imacros?
InfSub
Отредактировано zoodov (25-07-2019 12:28:34)
Отсутствует
zoodov
использовать версию imacros 8.9.7
Добавлено 25-07-2019 13:00:19
PRESIDENT ИМХО, это уже избыточно.
иногда бывает, что ff закрытый по [х] или через taskkill без force продолжает висеть в процессах, так что способ предложенный PRESIDENT имеет право на жизнь
Отредактировано InfSub (25-07-2019 13:00:19)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Всем доброго времени суток. Помогите решить проблему. У меня стоит ff 56 и imacros 8.9.7, все работает как часы, но при включении многопроцессности у меня перестают работать макросы, добавленные в панель закладок. Ссылка в закладке как положено "imacros://run/?m=Current.iim", но при многопроцессности не работает. Есть идеи как бороться с этим?
Отсутствует