Archiv pro štítek: Chrome

Detekce rozšíření AdBlock

Plugin AdBlock určený pro populární webové prohlížeče umí automaticky skrývat reklamní plochy. To je sice pro návštěvníka webu potěšující zpráva, majitel portálu však již tak jásat nebude, protože přichází o zisky z reklamy, které častokrát umožňují udržovat projekt v chodu. Říká se proto, že používáním rozšíření AdBlock škodíte svému oblíbenému webu.

My se nyní podíváme na detekci aktivního pluginu. Pokud zjistíme, že uživatel bannery blokuje, můžeme ukázat informační hlášku nebo vykonat zcela jinou akci. První zmíněnou cestou se vydala například Edna – podívejte se, co se zobrazí, když budete AdBlock používat.

Edna

Dost bylo teorie, přistupme k tvorbě skriptu. Nejprve vdechnu život volavce, jenž se bude tvářit jako reklama a dostane za úkol lákat AdBlock. Do nového souboru s názvem advertisement.js vložím tento řádek:

document.write('ad');

Pojmenování souboru je klíčové, aby AdBlock na lest skutečně skočil a domníval se, že se potkal s reklamou.

Do stránky výše uvedený javascriptový fragment klasicky vložím:

<script src="advertisement.js" type="text/javascript"></script>

Pochopitelně nechci volavkou mást návštěvníky, a proto ji s pomocí CSS skryji:

#test {
display:none;
}

A nyní zbývá poslední krok. Otestuji, zda se div s falešnou reklamou skutečně na stránce nachází. Pokud ne, zablokoval falešný banner AdBlock.

if (document.getElementById("test") == undefined) {
//AdBlock je povolen, zde provedeme další kroky
}

Hotové řešení pak může vypadat například takto:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<title></title>

	<style>
	#test {
   display:none;
	}
	</style>
	
</head>
<body>

<script src="advertisement.js" type="text/javascript"></script>

<script type="text/javascript">
if (document.getElementById("test") == undefined) {
//AdBlock je povolen, zde provedeme další kroky
alert("Prosím, vypněte si AdBlock");
}
</script>

</body>
</html>

Tento návod vychází z tohoto článku.

Závěrem si ještě dovolím varovat před hotovým skriptem, jenž lze nalézt na adblockdetector.com. Zastávám názor, že není třeba znovu programovat něco, co už bylo dávno vymyšleno, ovšem uvedené řešení prakticky nefunguje. V mém případě při použití prohlížeče Firefox detekce úplně selhala a při načtení stránky v Chrome byl povolený AdBlock odhalen jen několikrát z řady případů. Nabízený zdrojový kód navíc není v čitelné podobě, takže případnou chybu ani vlastní princip fungování nejsem schopen odhalit.

Chrome: Automatické vyplňování formulářů

ChromeWebový prohlížeč Chrome je poměrně inteligentní a již po své instalaci se postupně učí za uživatele doplňovat určité informace vyžadované ve formulářích. V mém případě proto mnohdy nemusím vyplňovat jméno, adresu ani telefonní číslo. V podobném duchu se nese i zapamatování přihlašovacího jména i hesla. Tato funkce si však bohužel nerozumí se stránkou, kterou musím denně využívat. Původně jsem pokaždé poctivě vyplnil požadované údaje, pohár trpělivosti však jednoho dne přetekl. Začal jsem proto hledat pohodlnější cestu k přihlášení. Napadlo mě vytvořit skript pro Greasemonkey, jenž by uživatelské jméno a heslo předvyplnil. Ještě před vydáním se tímto směrem jsem však chtěl vyzkoušet některý plugin pro Chrome. Mé starosti vyřešila pomůcka Autofill.

Zmíněné rozšíření pracuje bez sebemenší chybičky, přichází však podle mého názoru s poněkud neintuitivní formou počátečního nastavení. Popíši proto, jak plugin vyladit přesně pro konkrétní účel.

Po přidání do Chromu se Autofill ukrývá pod položkou NástrojeRozšíření. Do prohlížeče žádné tlačítko pro rychlý přístup přidáno není. Na stránce s dostupnými pluginy u položky Autofill zvolte poněkud nenápadnou volbu Možnosti. Zde konečně získáváte nad rozšířením plnou kontrolu. Můžete například odstranit některá předpřipravená pravidla, což jsem učinil. Plugin si je však stále pamatoval a předvyplňoval údaje u formulářů, kde jsem si to nepřál. Po mnoha pokusech jsem konečně zaregistroval na spodní části stránky s nastavením tlačítko Save. Změny tedy nejsou prováděny okamžitě, ale až po uložení.

Autofill - nastavení

Nyní tedy máme z pluginu odstraněná nechtěná pravidla a můžeme se vrhnout na vytvoření vlastních podmínek. Po počátečním zklamání, kdy jsem získal dojem, že si budu muset napsat vlastní regulární výrazy, jsem objevil menu Autofill v kontextové nabídce vyvolané pravým tlačítkem myši. Stačí proto v prohlížeči načíst stránku s formulářem, jenž si přejete předvyplňovat a zvolit v kontextovém menu AutofillAdd rules for this form. Pod adresním řádkem se zobrazí stručný průvodce, jenž si vyžádá vložení informací do formuláře, výběr profilu a uložení pravidla. Po provedení tohoto kroku již nikdy opakovaně shodné údaje vypisovat nemusíte.

Autofill

 

Ubuntu: Vyčištění (flush) DNS cache jediným příkazem

DNSDNS slouží k překladu doménového jména na IP adresu. Tento princip nám tedy umožňuje si pamatovat přijatelnější jméno (např. seznam.cz) namísto číselné adresy (77.75.72.3). Aby se snížila zátěž na příslušné servery, zavádí se na různých úrovních cachování (ukládání výsledků překladu s dočasnou platností). V některých případech se hodí vědět, jak zmíněné záznamy vymazat a nahradit je aktuálními údaji. Typicky tuto činnost provádím po obměně nameserverů u domény a přeji si, aby se tato změna co nejdříve projevila. Docílit toho lze mnoha rozdílnými způsoby, které zahrnují právě i vyčištění zmíněné lokální cache.

Mnoho webů doporučuje dosáhnout zmíněného cíle s pomocí instalace balíčku nscd (name service cache daemon) a následným restartem běžící služby.

sudo aptitude install nscd
sudo /etc/init.d/nscd restart

Po chvíli hledání jsem však narazil na mnohem přímočařejší řešení, které osobně používám.

sudo /etc/init.d/dns-clean start

Pokud ani po vyčištění cache nezaznamenáte změnu, můžete vyzkoušet ještě následující dva tipy.

Google DNS server a anonymní režim v Chrome

DNS serveru vašeho ISP může určitou chvíli trvat, než dojde k jeho aktualizaci a projevení upraveného zónového souboru. Lze však využít bezplatné služby pod hlavičkou Google, která zajišťuje provoz dvou rychlých DNS: 8.8.8.8 (primární) a 8.8.4.4 (sekundární). V Ubuntu stačí otevřít okno Připojení k síti, zvolit aktivní připojení a kliknout na Upravit. Vyberte Nastavení IPv4 a specifikujte Pouze automatické adresy DHCP, pokud je vám IP v lokální síti dynamicky přidělována. V opačném případě ponechte volbu Ruční. Nyní již jen stačí do Servery DNS vložit následující řádek a vše potvrdit.

8.8.8.8, 8.8.4.4

Jestliže preferujete prohlížeč Google Chrome, může se vám hodit následující rada. I tento program obsahuje svoji vlastní cache DNS záznamů. K vyčištění se používá adresa chrome://net-internals/#dns a tlačítko Clear host cache. O něco pohodlnější však je otevření nového okna v anonymním režimu (CTRL+SHIFT+N), kde nejsou interní údaje potřebné k překladu používány s ohledem na zajištění soukromí.