• Как быстро переключать proxy?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Создайте папку с именем Proxy, в нём создайте 2 файла.

    Содержимое файла manifest.json должно быть таким:
    {
    	
    	"name" : "Proxy",
    
    	"manifest_version" : 2,
    	 
    	"version" : "1.0",
    		
    	"description" : "Болванка для создания расширения для смены прокси на лету",
    		
    	"permissions" : [ "proxy", "webRequest", "webRequestBlocking", "<all_urls>" ],
    	
    	"background" : { "persistent": true, "scripts": [ "background.js" ] }
    
    }

    Содержимое файла background.js должно быть таким:
    // Функция для установки произвольного http-прокси:
    
    function setProxy(address, port, login, password) {
    	
    	if (typeof address == 'undefined' && typeof port == 'undefined') {
    		
    		chrome.proxy.settings.clear(
    			{},
    			function() {
    				console.log('Настройки прокси успешно удалены');
    			}
    		);
    		
    	}
    	
    	else {
    		
    		if (typeof login == 'undefined' && typeof password == 'undefined') {
    			
    			window.auth = undefined;
    			
    		}
    		
    		else {
    			
    			window.auth = Object.create(null);
    			window.auth['login'] = login;
    			window.auth['password'] = password;
    			
    		}
    		
    		chrome.proxy.settings.set(
    			{
    				value: {
    					mode: 'pac_script',
    					pacScript: {
    						data: 'function FindProxyForURL(url, host) { return "PROXY '+address+':'+port+'";  }'
    					}
    				},
    				scope: 'regular'
    			},
    			function() {
    				console.log('Прокси http://'+address+':'+port+' успешно установлен');
    			}
    		);
    		
    	}
    	
    }
    
    // Автоматиечский ввод логина и пароля, если прокси требует авторизации:
    
    chrome.webRequest.onAuthRequired.addListener(
        function(info, callback) {
            if (info.isProxy && typeof window.auth !== 'undefined') {
    			callback({
    				authCredentials: {
    					username: window.auth['login'],
    					password: window.auth['password']
    				}
    			});
    		}
    		else {
    			callback();
    		}
        },
        { urls: [ '<all_urls>' ] },
        [ 'asyncBlocking' ]
    );
    
    // Обнуление настроек прокси сразу после установки расширения:
    
    chrome.proxy.settings.clear({}, function() {});

    Далее папку Proxy установите в качестве расширения в свой браузер:
    Меню -> Дополнительный инструменты -> Расширения ->
    Режим разработчика -> Загрузить распакованное расширение


    Чтобы поменять прокси в браузере, в консоли фоновой страницы расширения достаточно вызывать функцию setProxy() передав первым параметром адрес прокси, вторым порт, третьим логин, а четвертым пароль. Пример:
    setProxy('185.202.3.118', '65233', 'idle', 'dfgfgfgfdd');

    Чтобы удалить ранее установленный прокси, достаточно вызывать эту же функцию без параметров. И да, работает только с http-прокси, поддержку socks-прокси я не делал, так как в моем проекте это не было нужно.

    Надеюсь вы осознаете, что это просто пример кода для смены прокси в браузере. Разумеется болванку надо переделывать под себя, сделав ему интерфейс, но это уже ваши заботы, бесплатно я это точно не буду делать.
    Ответ написан
    Комментировать
  • Как изменить калькулятор по команде calc в Windows 10?

    @Hanneman
    Переименуй название файла, а новый положи именем calc.exe. Какие проблемы.
    Ответ написан
    Комментировать
  • Как присвоить переменной результат echo?

    @Visphord
    Ну или вот так, если интересен сам принцип перехвата данных из echo:
    ob_start();
    echo "Привет ";
    $out1 = ob_get_contents();
    Ответ написан
    Комментировать
  • Почему на фриланс бирже 90% заказчиков кидалы или шантажисты?

    Боюсь в данном случае вы просто не оценили, что хотел от вас заказчик.
    Старайтесь смотреть на это с его стороны. Вот он говори "сделать верстку". Вы думаете, что за этим скрывается "сверстать макет и передать hrml и css". С вероятностью же 99% для заказчика за этим стоит: "сверстать пиксел в пиксел как на макете, натяунуть на сайт, добавить в контроллере обработку новых элементов, внести изменение в базу чтобы все это поддерживалось". Заказчик конечно не думает это все такими словами. Просто он думает что если вы сверстаете ему на страничке элемент оценки товара с пятью звездочками, то он должен работать. Он не знает, что за этим стоит не только картинка, а куча js, непростая серверная часть и т.п.
    Чем короче требования заказчика, тем больше он под ними подразумевает. И он в это не виноват.
    Это вы должны объяснить ему что он просит и что он получит, потому что когда то, что он получит не будет совпадать с тем что он ждет, виноваты будете именно вы, даже если он попросил у вас именно то, что получил.
    Ответ написан
    Комментировать
  • Почему на фриланс бирже 90% заказчиков кидалы или шантажисты?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Потому что на фриланс бирже 90% работников кидалы и мудозвоны.
    Ответ написан
    1 комментарий
  • Верстке еще нужна поддержка IE11 в 2019?

    1.Почему верстальщики и должны подстраиваться под браузеры, которые не обновляются и не поддерживают современные стандарты? Я этого не понимаю, это моё субъективное мнение. 2. Мне кажется, не осталось людей, которые в 2019 году пользуются IE. Я считаю так, если заказчик так уж сильно хочет, чтобы у него была поддержка IE, то тут уж хозяин барин, нужно делать. В таком случае можно поставить плагин автопрефиксер, чтобы не прописывать префиксы каждый раз. В общем, тут нужно спрашивать у заказчика, нужно ему это или нет.
    Ответ написан
  • Прелоадер для блока?

    Griboks
    @Griboks
    Напишите внутри блока "загрузка...". Или проявите свою фантазию и вставьте прелоадер.
    Ответ написан
    Комментировать
  • Как убрать квадратную рамку вокруг круглого элемента?

    UnluckySerivelha
    @UnluckySerivelha
    -webkit-tap-highlight-color: rgba(255, 255, 255, 0); 
    -webkit-tap-highlight-color: transparent;
    Ответ написан
    Комментировать