Denzar Что вы голову ломаете? Эти параметры записываются в сессионную куку с именем aep_usuc_f
Запись своего значения в куку по имени или по домену, как угодно, делается так
var { Services } = Components.utils.import("resource://gre/modules/Services.jsm"); Services.cookies.add(".aliexpress.ru", "/", "aep_usuc_f", "b_locale=es_ES&c_tp=RSD&city=917477776580000000&province=917477770000000000®ion=RU&site=rus", false, false, true, Date.now());
всё что в кавычках начиная со слова b_locale заменить на свои значения
Алим
Погугли по тегу "P2P Firefox". Вот, допустим, чат для локалки
miltorg Вы ещё ничего не доказали и не сказали относительно того какие законы нарушает данный топик и вряд ли сможете. И ваш преждевременный нарочитый восторг с бугагашечками тут неуместен.
Тут в открытую предлагают услуги по взлому сайтов.
А напишите конкретно ваши фамилии и конкретно - что вы предлагаете - неправомерный доступ к информации хранящейся на сайте с помощью взлома Капч.
Голубчик, бремя доказывания лежит на истце или стороне с притязаниями. Могу лишь вас уведомить, что существует ответственность за заведомо ложных донос, а также в ГК прописана недопустимость осуществления гражданских прав с намерением причинить вред другому лицу. Удачи.
miltorg Так напишите заявление в полицию с жалобой, что кто-то безжалостно разгадывает вашу капчу. Когда получите официальный ответ "нет признаков уголовного правонарушения" вместе посмеёмся.
Раз прецедента по такому вопросу ещё не было, то вы ведёте беспредметный разговор. Попробуйте озвучить свою проблему на одном известном российском юридическом форуме. Там для людей, которые ничего не понимают в законах, но самоотверженно пытаются качать права, существует специальный раздел для любителей изобрести альтернативную теорию права. Если удача и там отвернётся, пишите сразу в спортлото ;)
блин чот проблема возникает ...Не хотит принимать массив аргументов в
Не туда… совсем
Ладно, если передать объект по твоему способу с внедрением, то так
[spoiler][code]
var obj_inject = {
'canvas':{
'r': 0,
'g': 3,
'b': -4,
'a': 2
}
};
var canvas_inject = function (obj) {
const toBlob = HTMLCanvasElement.prototype.toBlob;
const toDataURL = HTMLCanvasElement.prototype.toDataURL;
const getImageData = CanvasRenderingContext2D.prototype.getImageData;
var noisify = function (canvas, cont) {
const shift = obj;
const width = canvas.width, height = canvas.height;
const imageData = getImageData.apply(cont, [0, 0, width, height]);
for (let i = 0; i < height; i++) {
for (let j = 0; j < width; j++) {
const n = ((i * (width * 4)) + (j * 4));
imageData.data[n + 0] = imageData.data[n + 0] + shift.r;
imageData.data[n + 1] = imageData.data[n + 1] + shift.g;
imageData.data[n + 2] = imageData.data[n + 2] + shift.b;
Так в параметрах вызова же… :/
var obj_inject = { 'canvas':{ 'r': 0, 'g': 3, 'b': -4, 'a': 2 } }; var inject = function(obj) { window.console.log(obj) }; inject(obj_inject);
В чём конечная цель?
---------UPD
Чем пытаться внедрять скрипт текстом лучше юзайте wrappedJSObject чтобы получить доступ к пространству имён скриптов текущей страницы
//В макросе выполняем var win = window.content.document.defaultView.wrappedJSObject; win.inject = function() { window.console.log("test"); }; //В консоле по Ctrl + Shift + k вызываем для проверки inject();
BondM
Несколько классов элемента в данном методе указывается через точку вот так
var time = window.document.querySelector('.plyr__controls__item.plyr__time--duration.plyr__time').innerText; window.console.log(time)
var time = window.document.querySelector('.plyr__controls__item.plyr__time--duration.plyr__time').innerText; window.console.log(time) var a = time.split(':'); var seconds = (+a[0]) * 60 + (+a[1]); window.console.log(seconds); iimPlayCode('WAIT SECONDS='+seconds);
При помощи JS
Gergi
Раньше решалось about:config
Попробуйте это
iimPlayCode('TAG POS=1 TYPE=TEXTAREA FORM=ID:write_form ATTR=NAME:message CONTENT=' + 'aaa<BR>bbb');
InfSub, я на цикл не смотрел, т.к. он там вообще неуместен в таком виде. Наличие try{...} catch{...} не смутило? ;)
А так, вполне обыденная практика генерировать так динамические регулярки.
Судя по коду ему нужно при листинге страниц извлекать из pathname уникальный ник и подставлять его в регулярку,
с помощью которой он собирает в массив ссылки со страницы соответствующие нужному паттерну включающему ник.
Естественно, конечно оптимально было бы сразу собрать в коллекцию все ссылки методом querySelectorAll('a'); и согласен по поводу test()
var arr = []; var url = window.location.pathname.substr(1); var nodes = window.document.querySelectorAll('a'); var re = new RegExp(url + '/status\\.\\d+', 'i'); for (i=0;i<nodes.length;i++) { var link = nodes[i].href; if (re.test(link)) arr.push(link); } window.console.log(arr);
Алим
Примерно так
Заранее в текст вбейте символ переноса строки в нужные места
Есть же примеры
var tx = ['Данное сообщение пишем с \nновой \n\n\nстроки']; var txarea = window.document.querySelector('textarea[class^="message"]'); txarea.value = tx[0];
saurbeck
var text = ['Данное сообщение пишем с новой строки']; iimPlayCode('TAG POS=1 TYPE=TEXTAREA FORM=ACTION:* ATTR=CLASS:message* CONTENT="'+ text[0].replace(/\s/g, '\r\n') +'"');
И вам тоже дай бог здоровья (от агностика)! ;)
По поводу десктопа всё можно, есть множество гайдов, в том числе статей на хабре.
По запросу "desktop js" в выдаче гуугла много статей по этой тематике. Сам таким не занимался поскольку с JS мне на данный момент удобнее работать браузерно, где реализовано много технологий и API дающих дополнительный набор возможностей. Опять же иногда помогают готовые расширения для Firefox.
Но в любом случае для начала необходимо ознакомиться с основами javascript
Для отладки запроса
var XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1");
Ваприанты:
- Токенизация
- Проверка рефёрера на сервере
- Отправка из средств разработчика не всегда корректно работает
Составляйте запрос вручную через конструктор XMLHttpRequest.
В настройки инструментов разработчика зайдите и включите непрерывные логи "Enable persistent logs"
Вы сами должны определить какие данные отправляются при взаимодействии со страницей и найти нужные запросы.
Потом пробуйте имитировать запрос через XMLHttpRequest с необходимыми заголовками и параметрами.
Не видя страницы перед глазами со всеми событиями и подключенными скриптами, помощь вам будет схожа с сеансом телепатии. Тут слишком много "если".
Это только заголовки. Содержимое в "Params".
Вы вначале запрос найдите, который идёт на сервер при изменении цены.
Хотя бы по фильтру XHR отсортируйте на панели.
В Firefox Ctrl + Shift + E
или F12 -> вкладка "Сеть"
Выше ссылку давал о типе данных и преобразовании типов. Читайте до понимания.
Прежде чем осуществлять арифметические действия, убедитесь, что значения переменных приведены к правильному типу (number).
Вам уже объяснил аналогичную вашу ошибку