16 komentářů k článku Page Visibility API: Kouká na mě vůbec někdo?:

  1. evilcroco

    Proč k objektu document?

    Je někde uveden důvod, proč se příslušné API váže k objektu document, když dle mého prvního odhadu by vedlo na objekt window? (příznávám, jsem líný to hledat ;-))

  2. Martin Soušek

    nebezpečná hloupost

    Tak snad uživatel není hlupák, ne?

    Třeba jen u videa poslouchám zvuk a u toho pracuju. Nebo přeskakuju nepřetočitelné reklamy a mezitím si něco čtu. Nebo mám nějaký jiný důvod na stránku zrovna nekoukat.

    Implementace tohoto nesmyslu povede jen k tomu, že se na onvisibilitychange navěsí reklamní kódy a jakmile přepnu na nějaký tab, tak všechny reklamy začnou skákat a volat „klikni sem“ :)

    1. JakubS

      Re: nebezpečná hloupost

      Někteří uživatelé bohužel hlupáci jsou. :-) A naopak někteří programátoři naštěstí nejsou hlupáci.

      – Jsem si jistý že tvůrci přehrávačů budou s touto novinkou nakládat velmi citlivě.
      – Ad druhá připomínka: ale vždyť to se v určité míře děje/může dít už dnes :-)

      Velmi bych ocenil pokud by se automaticky deaktivovaly FLASHové bannery které zrovna nejsou viditelné (šetřilo by to výkon = baterku)

  3. biggringo

    bezpečnost

    Vzpomněl jsem si na ten typ útoků, kdy se stránka po nějaké prodlevě (kdy na ni uživatel už pravděpodobně nekouká) promění ve falešnou přihlašovací stránku třeba na Google.

    Tohle API je docela dobrý pomocník, dá se to vůbec nějak ošetřit?

    1. v6ak

      Re: bezpečnost

      Záleží, co myslíte tím ošetřením. Jak je zřejmé, toto API pouze zjednodušuje tvorbu takovýchto stránek, ale i bez něj by si šlo poradit (mousemove, keydown, keyup, blur, focus, …).

      Blokovat tato API by bylo zřejmě neefektivní. Uživatel se prostě musí podívat, kam to heslo zadává. Před časem jsem dával na bugzillu Mozilly návrh UI (včetně primitivních kreseb), které by tomu mohlo pomoci, ale nesetkal jsem se s odezvou. Každopádně, cesta IMHO vede tudy.

      A může tomu pomoci do jisté míry i App Tab – pokud se o to pokusí neapptabová stránka, uživateli to bude divné, čímž se může okruh stránek s potenciálem útočit zmenšit.

  4. Jakub Vrána

    Hodnota undefined

    Hodnota undefined se vyhodnocuje jako false. Stejně jako několik dalších hodnot.

    Porovnání výsledku typeof s řetězcem "undefined" je třeba jen u běžných proměnných (kde přímý přístup na rozdíl od vlastností objektu vyvolá chybu).

    1. undefined = true/false

      Re: Hodnota undefined

      Ano mas pravdu, ale v kontexte veci autor asi chcel povedat, ze ked dam test:
      if (document.web­kitHidden) {} else {}
      napr. v Mozille, tak spusti false vetvu „if“, cize okno je podla tohto prikazu viditelne.

      1. Jakub Vrána

        Re: Hodnota undefined

        Spustí se větev else. A to je podle mě naprosto v pořádku – když se nemohu spolehnout na to, že je okno skryté, tak se chovám, jako kdyby bylo vidět.

  5. Jakub Vrána

    Starší prohlížeče

    Ve starších prohlížečích se pro podobnou funkci dá použít kombinace událostí window.onblur a window.onfocus. Já to v Admineru používám pro zobrazení ikony, pokud probíhá práce. Někde jsem to také viděl použité pro zastavení časového odpočítávadla – to mi přijde chytré, i když protivné.

    1. v6ak

      Re: Starší prohlížeče

      Přesně to mě taky napadlo, když jsem to četl. Jde asi o nějaké vylepšení těchto dvou událostí, je možné, že některé prohlížeče blurem reagovat třeba u zamčení počítače, ale i tak je to IMHO schopno postihnout zajímavé procento případů. (BTW, pokud nechávám počítač zamknutý a neuspaný, tak mě ta nepatrná úspora energie nebo lepší responsivnes nevytrhne…)

      1. Jakub Vrána

        Re: Starší prohlížeče

        Podle mě onblur nastane i v případě, kdy focus ztratí celé okno (ale je stále vidět). Kdežto visibilitychange jen v případě, kdy stránka skutečně zmizí (nejčastěji asi přepnutím na jiný panel, ale třeba i minimalizací okna).

        Ale to jen tak hádám, specifikaci jsem nečetl, ani jsem to nezkoušel – takhle bych to navrhl já.

        1. juraj

          Re: Starší prohlížeče

          Máš pravdu, je to tak. A aby toho nebolo málo, niektoré prehliadače ešte podporujú dvojicu udalostí DOMFocusIn/DOM­FocusOut (ako focus/blur, len prebubláva), iné zasa focusin/focusout (tiež prebubláva, len nefunguje na window).

        2. v6ak

          Re: Starší prohlížeče

          To je fakt. Já mám ve zvyku si okna maximalizovat a nejlépe jim ještě odstranit „dekoraci“ (ty rámečky, tutilek apod.), takže jsem si neuvědomil, že by neaktivní okno mohlo být viditelné.

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=3528