IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Jak rozeznat ve které záložce prohlížeče kliknu

V předchozím kvízu, Online test znalostí HTML a CSS, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Petr
Člen
Avatar
Petr:13.7.2018 16:36

Mám program (v PHP) a výsledek si zobrazuji v prohlížeči. (localhost) Pak stejný program spustím v druhé záložce (Firefox). Potřebuji zjistit, ve které záložce jsem kliknul na nějakou volbu.
Přes cookies to nefunguje, vždy se reaguje na poslední klik bez závislosti ve které záložce to bylo, i když cookies rozliším.

Zkusil jsem: setcookie($co­okie_name, $cookie_value) se neprojeví hned, ale až po dalším načtení stránky. Když je to ve vedlejší záložce, tak je to zle. Přímým zápisem do $_COOKIE to také nejde.
Možná jiná technologie? (Na stejný program, na jinou HTTP to samozřejmě jde.)

Chci docílit: Lze nastavit samostatnou paměťovou oblast pro záložku, aby Firefox nereagoval na cizí klik v jiné záložce?

 
Odpovědět
13.7.2018 16:36
Avatar
Neaktivní uživatel:13.7.2018 20:06

Do GET jsi uložíš nějaké ID a v PHP to např. pomocí DB poznáš...

Nahoru Odpovědět
13.7.2018 20:06
Neaktivní uživatelský účet
Avatar
Jiří Mrázek:13.7.2018 20:51

Myslím si, že Petr nechtěl zrovna tohle. Petr podle mě chce zjistit, zda-li byla hodnota již odeslána pomocí jiné záložky a pokud ano, tak vykonat akci, která následuje po odeslání.

Pokud by šlo v mém případě o příklad, tak by to mohl být vícekrokový nákupní košík.

Co to řešit nějak takhle?

$sent = $_SESSION["sent"];
$_SESSION["sent"] = $_GET["p"];

$same = ($sent == $_SESSION["sent"]);
echo $same ? "ano" : "ne";

Pokud jsem nepochopil tvůj požadavek správně, zkus to popsat lépe prosím. :-)

 
Nahoru Odpovědět
13.7.2018 20:51
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:16.7.2018 12:22

Viz ostatni, prihlas tam uzivatele, jakoby.
Pridej do stranky nejaky parametr, ktery pridas ke vsem odkazum a formularum.
< a href=\"odkaz?p=a\"> <form><input type=hidden p=a>
< a href=\"odkaz?p=b\"> <form><input type=hidden p=b>
Javascriptem by se to dalo mozna podchytit pres zachytavani onclick na odkazech a onsubmit na formularich. Nebo mozna pres window.onunlo­adbefore. Ale, co kdyz tam mas ajaxy?

Session nevim, zda by sly pouzit. V ramci jedne domeny se prenaseji do druheho okna.
Ale, slo by, pokud to delas teda jako localhost (nebo na serveru), vytvorit si druhou domenu (? ip adresu; Asi pres htaccess nebo nejak pres server. Nebo mozna i s pomoci editace ve win
C:\Windows\Sys­tem32\drivers\et­c\hosts
127.0.0.1 localhost #ipv4
::1 localhost #ipv6
-- ale tohle pouzivam spis na blokaci reklam, presmeruji adresu na 127.0.0.1, pr
127.0.0.1 popads.net

Editováno 16.7.2018 12:23
 
Nahoru Odpovědět
16.7.2018 12:22
Avatar

Člen
Avatar
:16.7.2018 18:48

Presne na ten účel existuje Broadcast Channel API. Vo FF funguje, aj v Chrome. Aj na mobiloch. Ostatnými prehliadačmi si však nie som istý.

 
Nahoru Odpovědět
16.7.2018 18:48
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.