// Записываем параметры прокси в глобальную переменную:
window.proxy_auth = {
'address': 'Адрес_прокси:Порт_прокси',
'proxy_user': 'Логин от прокси',
'proxy_password': 'Пароль от прокси'
};
// Устсновка прокси через назначение PAC-скрипта:
chrome.proxy.settings.set(
{
value: {
mode: 'pac_script',
pacScript: {
data: 'function FindProxyForURL(url, host) { return "PROXY '+proxy_auth.addres+'"; }'
}
},
scope: 'regular'
},
function() {
console.log('Прокси '+proxy_auth.addres+' установлен');
}
);
// Автоматическая авторизация для установленного прокси:
chrome.webRequest.onAuthRequired.addListener(
function(info, callback) {
if (info.isProxy && typeof window.proxy_auth !== 'undefined') {
callback({
authCredentials: {
username: window.proxy_auth.proxy_user,
password: window.proxy_auth.proxy_password
}
});
}
else {
callback();
}
},
{ urls: [ '<all_urls>' ] },
[ 'asyncBlocking' ]
);
{
"name" : "Имя расширения",
"manifest_version" : 2,
"permissions" : [ "proxy", "webRequest", "webRequestBlocking", "<all_urls>" ],
"background" : { "persistent": true, "scripts": [ "background.js" ] }
}
chrome.proxy.settings.set(
{
value: {
mode: 'pac_script',
pacScript: {
data: 'function FindProxyForURL(url, host) { return "DIRECT"; }'
}
},
scope: 'regular'
},
function() {
console.log('Прокси сброшены');
}
);
async function sendFile() {
// Берём из поля выбора файлов самый первый файл за номером 0:
var file = document.querySelector('input[type="file"]').files[0];
// Создаем форму конструктором:
var form_data = new FormData();
// Добавляем в форму наш файл из поля:
form_data.append('image', file, file.name);
// Добавляем остальные данные:
form_data.append('title', 'www');
form_data.append('body', 'ghghghghgh');
form_data.append('tag', '123456');
form_data.append('lang', 'ru');
form_data.append('published_at', '2020-01-01 20:00:00');
// Отправляем форму на сервер (замените адрес обработчика на свой):
var response = await (await fetch('https://nadim.work/test.php', {
method: 'POST',
body: form_data
})).text();
// Выводим ответ сервера в консоли:
console.log("Ответ сервера: " + response);
return response;
}
txt = '{{ значение 1/значение 2 }}';
arr = txt.split('/'); // Разбиваем строку по делителю в виде слеша
left = arr[0].replace(/^\{\{/, '').trim(); // Берем левую часть и убираем скоби в начале
right = arr[1].replace(/\}\}$/, '').trim(); // Берем правую часть и убираем скобки в конце
console.log(left, right);
$(function () {
$("#ajax_form").submit(
async function(event) {
var form = new FormData(event.target);
event.preventDefault();
try {
var response = await $.ajax({
url: 'create-article.php',
type: 'POST',
data: form,
processData: false,
contentType: false
});
console.log("Ответ серввера:\n" + response);
alert("Ответ серввера:\n" + response);
}
catch(err) {
alert('Ошибка отправки, детали см. в консоли!');
console.log('Не удалось отправить форму:');
console.error(err);
}
}
);
});
function clickElements(selector, regexp, where) {
return new Promise(function(returnResult) {
var search_result = false;
var local_reactive_function = function() {
var click_elements = searchElements(selector, regexp, where);
if (click_elements.length > 0) {
if (search_result === false) {
search_result = true;
await wait(100);
var click_elements = searchElements(selector, regexp, where);
if (click_elements.length > 0) {
observer.disconnect();
for (var n = 0; n < click_elements.length; n++) {
click_elements[n].click();
}
returnResult(click_elements.length);
}
else {
search_result = false;
local_reactive_function();
}
}
}
}
var observer = new MutationObserver(local_reactive_function);
observer.observe(document.body, {
characterData: true,
attributes: true,
childList: true,
subtree: true
});
local_reactive_function();
});
}
function searchElements(selector, regexp, where) {
var search_elements = [];
if (typeof where !== 'undefined') {
var all_elements = where.querySelectorAll(selector);
}
else {
var all_elements = document.querySelectorAll(selector);
}
for (var n = 0; n < all_elements.length; n++) {
if (typeof regexp == 'object') {
if (typeof regexp.test == 'function') {
if (regexp.test(all_elements[n].innerText.trim())) {
search_elements.push(all_elements[n]);
}
}
}
else {
search_elements.push(all_elements[n]);
}
}
return search_elements;
}
function wait(ms) {
return new Promise(function(success) {
setTimeout(function() {
success(true);
}, ms);
});
}
(async function() {
await clickElements('CSS-селектор');
})();
(async function() {
while(true) {
await clickElements('CSS-селектор');
console.log('Успешно выполнен клик');
}
})();