• Почему не срабатывает скрипт моего расширения для браузера на некоторых сайтах?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Скорее всего проблема в том, что на момент запуска кода из content.js кнопка ваша еще отсутсвует на странице.

    Я дам вам функцию кликер с одного из своих расширений, используйте его:
    Асинхронная функция кликер
    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;
    					observer.disconnect(); 
    					
    					setTimeout(function() {
    						
    						var click_elements = searchElements(selector, regexp, where);
    						
    						for (var n = 0; n < click_elements.length; n++) {
    							click_elements[n].click();
    						}
    						
    						returnResult(click_elements.length);
    						
    					}, 1000);
    					
    				}
    				
    			}
    			
    		}
    		
    		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;
    
    }

    Чтобы кликнуть последовательно (один за другим) несколько элементов вызывайте функцию clickElements:
    (async function() {
        await clickElements('CSS-селектор 1');
        await clickElements('CSS-селектор 2');
        await clickElements('CSS-селектор 3');
    })();

    Функция clickElements обязательно дождется появления кнопок соотвествующих указанным CSS-селекторам и только тогда их нажмёт, последовательно сверху вниз. При этом в эту функцию вторым параметром можно передать регулярное выражение, чтобы найти кнопку по его тексту.
    Ответ написан
    Комментировать
  • Какие окологиковские русскоязычные сайты вы читаете?

    @dtestyk
    livecoding.tv видео трансляции кодинга
    develop.re аггрегатор новостей
    developerslife.ru развлекательный
    ifr.org роботы
    marsohod.org железо
    4pda.ru гаджеты
    itc.ua
    scoop.it/t/arts-numeriques искусство
    blog.matthen.com
    3dnews.ru
    thenextweb.com
    phys.org физика
    serious-science.org англиский вариант postnauka.ru
    ithappens.me короткие истории
    arxiv.org библиотека
    whyfiles.org наука
    livescience.com
    membrana.ru
    elementy.ru
    lib.e-science.ru библиотека
    dxdy.ru математика
    scotch.io web dev
    nuit-blanche.blogspot.ru big data, machine learning
    gamedev.ru
    echojs.com аггрегатор новостей javascript
    Ответ написан
    1 комментарий
  • Доменная зона .io — что я пропустил?

    Один из омонимичных доменов:

    .am — национальный домен Республики Армения, созвучен с диапазоном радиостанций AM или как зона AMerica.
    .cd — национальный домен Демократической республики Конго (иначе — Заира), совпадает с сокращением для компакт-диска.
    .dj — национальный домен Джибути, совпадает с сокращением «диджей».
    .fm — национальный домен Федеративных Штатов Микронезии, созвучен с диапазоном радиостанций FM. Пример: last.fm.
    .im — национальный домен Острова Мэн. Совпадает с сокращением Instant Messaging («мгновенные сообщения»).
    .io — национальный домен Британских территорий в Индийском океане. Совпадает с сокращением Input Output («ввод/вывод»).
    .is — национальный домен Исландии. Совпадает со словом is, формой третьего лица единственного числа английского глагола to be. Пример: who.is
    .it — национальный домен Италии. Совпадает с сокращением IT (информационные технологии), а также с английским местоимением it («это»). Пример: ok.undo.it
    .md — национальный домен Молдавии. Совпадает с сокращением аудионосителя MiniDisc и с сокращением Must Die. Также совпадает с сокращением от англ. medical doctor, используемым повсеместно в англоязычных странах. Например, известный американский сериал «Доктор Хаус» в оригинале называется House, MD.
    .me — национальный домен Черногории. Совпадает с местоимением «меня», «мне» в английском и других европейских языках.
    .net — общий домен верхнего уровня, совпадает с русским словом «нет», из-за чего обрёл в России (и не только) дополнительную популярность. Часто используется с доменными именами в виде транслитерированных русских слов. Примеры: mozga.net, lishnih.net.
    .nu — национальный домен острова Ниуэ, созвучно со словом ню.
    .tm — национальный домен Туркменистана, совпадает с аббревиатурой «™» (англ. trade mark — торговая марка).
    .tv — национальный домен Тувалу, совпадает с аббревиатурой «Телевидение».
    .ws — национальный домен Западного Самоа, совпадает с аббревиатурой Web Site.
    .in — национальный домен Индии, с английского языка переводится как предлог «в».
    .li — национальный домен Лихтенштейна. Совпадает с окончанием глаголов и имён существительных в русском языке. Используется с доменными именами в виде транслитерированных русских слов. Примеры: zadolba.li, zastuka.li, vaf.li, gus.li, yas.li.
    .pro - общий домен верхнего уровня для профессионалов в своей области.
    Ответ написан
    3 комментария
  • Инструмент для форматирования HTML кода?

    @remen
    freeformatter, там еще много всего интересного
    Ответ написан
    Комментировать