2

Mám jednu stranu otce a jednu stranu dcery. dětská strana je otevřena na nový vklad

Když zavřu podřízenou kartu, chci předem zobrazit jedno upozornění (podřízená strana se zavře).
Jak mohu zavřením karty ukázat, že messgae je uzavřen? (Není to osvěžující hodina)

Vyhrával jsem OnUnload a onbeforeunload.
Tyto dvě metody se také volají při aktualizaci stránek a zavírání záložek.

Window.onunload = funkce doUnload(e) ( alert("Dětské okno se zavírá..."); )

Window.onbeforeunload = funkce doUnload(e) ( alert("Dětské okno se zavírá..."); )

Jsem povinen zobrazovat upozornění před žvýkáním, dokud nezavřete kartu v prohlížeči.

Pomoz mi. Děkuji předem.

Prohlížím útočný scénář. Yogo pracoval s IE. Ale nefunguje s FireFoxem

window.onbeforeunload = function() ( if ((window.event.clientX< 0) || (window.event.clientY < 0) || (window.event.clientX < -80)) { alert("Child window is closing..."); } };

Jak může mít FireFox jiný prohlížeč?

  • 4 druhy
  • řazení:

    Aktivita

1

Z tohoto důvodu se nejedná o skript pro různé prohlížeče. Řešením je NEspoléhat se na nezdokumentované a omezené funkce konkrétního prohlížeče, abyste si uvědomili, že to je důležitější.

Dokud máte stránku CHILD, můžete se svým otcem (ovladačem) nastavit test, který v intervalech kontroluje sílu childWindowHandle.closed a vše ostatní na něm.

1

Předpokládejme, že je snadné střílet s rozhraním Crossbrowser, což výrazně sníží náklady (za vinou provozu)

Try( // http://www.opera.com/support/kb/view/827/ opera.setOverrideHistoryNavigationMode("kompatibilní"); history.navigationMode = "kompatibilní"; )catch(e)() //Our Where Funkce F" Are You Going Message ReturnMessage() ( return "WTF!!!"; ) //Funkce UnBind Function UnBindWindow() ( window.onbeforeunload = null; return true; ) //Bind Links, které nechceme ovlivnit .getElementById("homebtn").onclick = UnBindWindow; document.getElementById("googlebtn").onclick = UnBindWindow; //Bind Exit Message Dialogue window.onbeforeunload = ReturnMessage;

0

S výjimkou těchto metod byste nebyli schopni vyrobit tento základ pece, což je práce na vývoji řešení, která nejsou stabilními soubory cookie. Jiná identifikace nové stránky, přesměrování na základě formuláře nebo návratová přesměrování nebo uzavření prohlížeče s relevantními možnostmi přímo nesouvisí. Doporučuje se před nikým nelhat.

Následující akce můžete provést tak, že spodní klient nejprve zavře kartu. javascript detekovat prohlížeč zavřít kartu/zavřít prohlížeč , pokud je váš seznam dlouhý a karta je zavřená před dokončením, máte potíže. Můžete to zkusit, ale s mými znalostmi se nebudete moci držet dál od ničeho jiného. Takže v tuto chvíli nemůžete rozlišovat zpět a zavřít. Neexistuje žádný spolehlivý způsob, jak říci, že dítě je skutečně uzavřené.

Window.addEventListener("beforeunload", funkce (e) ( var potvrzeníMessage = "\o/"; /* Máte zde malý kód akce */ (e || window.event).returnValue = potvrzeníMessage; //Gecko + IE vrátit potvrzovací zprávu;//Webkit, Safari, Chrome));

„Nicméně, za prvé, protože nemáte v úmyslu vytvářet webový text, pouze standardní upozornění,“ soudě podle komentářů je to trvalé a neodvolatelné. V souvislosti s tím jsem chtěl napsat něco málo o historii výživy.

Víme, že v první řadě můžete zákazníka požádat, aby webovou stránku nepřipravil o účet, protože má neuložená data (např. je to napsané ve formuláři, ale upozornění nebylo odesláno do fóra) . K tomu stačí přidat něco jako tento JavaScript:
window.onbeforeunload = function (evt) ( var message = "Dokument "foo" není uložen. Pokud stránku opustíte, změny ztratíte."; if (typeof evt == "undefined") ( evt = window.event ; ) if (evt) ( evt.returnValue = zpráva; ) vrátit zprávu; )
Poté by v ideálním případě chtěl uživatel stránku zavřít (jakýmkoli způsobem - zavřít kartu, celý prohlížeč, znovu zadat stránku, zadat novou adresu do adresního řádku, přejít na záložku atd.), pak požádejte o potvrzení a odejděte zde můžete být skasuvati. Dříve se jim nevinní autoři stránek snažili pomoci přelstít hackera a umístit ho na stránku, například vikory text „Klepnutím na OK pokračujte v práci s webem a na Storno pro zavření“ (ve skutečnosti tlačítka fungovala stejným způsobem ki). Nebo ještě hůř, například „Klepnutím na OK potvrďte platbu ve výši 1000 $ z vaší kreditní karty.“

Pak se prohlížeče umoudřily a začaly přidávat další text, což usnadňuje obchodníka oklamat. Osou je například to, jak používat IE8:

Téměř podobný text ve Firefoxu 3:


Jakmile si to všechno přečtete, je jasné, že uvidíte web a poté prohlížeč. Oklamat však můžete každého.


Zde máme velmi přesný popis akce přímo na tlačítkách. Již nyní je velmi důležité znovu přeměnit koristuvach a stisknout „Piti“, abyste prohráli a „Forfeit“, abyste mohli pít. Dle mého názoru je řešení ideální a toto téma lze uzavřít. Vzagali, jak víte, anonymní OK může v jakémkoli dialogu nahradit trasování názvem akce (například „Smazat soubory“, „Hledat“, „Přidat řádek“, „Otevřít soubor“ atd.), která mění počet zpráv koristuvacha, víte, že máte plnou kontrolu nad textem dialogu.

Proč došlo k dramatu s chybou 641509? Ten, který potvrzuje Firefox 4, vypadá takto:


Text koristuvach byl zjevně napsán ve tmě. Ve verzi 4 nemůže webová stránka poskytnout zákazníkovi žádné další informace ani vysvětlit, proč si zákazník nepřeje, aby tak učinil. Řekněme, že pokud implementujete rozhraní pro práci se spoustou dokumentů v jednom okně a žádný z nich neušetří, dalo by se říci které konkrétně, ale ve Firefoxu nebudete rozumět ničemu. Možná nemusíte nic ukládat a po obdržení více informací klidně přejděte na druhou stranu, ale nevíte, co je vpravo. Na konci

Už jsem byl několikrát dotázán, jak zavřít karty. Řekněme, že vlastník chce váš web zavřít a vy se chováte jako netěsné okno a zeptáte se: “ Zpíváš?", nebo pracujete na přesměrování na jiný web. Tyto metody už samozřejmě zastánci používají, proto doporučuji je nevikoristovat. Prohlížeče na tom naštěstí nejsou tak špatně s jejich mazáním, ale stále existují některé možnosti pro zavření karty.

Je možné se zeptat koristuvach: " Proč chcete zavřít stranu? Zavřením záložky lze osu implementovat následujícím způsobem:


window.onbeforeunload = function() (
return "Někdy bys to měl říct koristuvach";
}

Tento kód poběží ve Firefoxu, IE, Chrome, ale nespustí se v Opeře (který prohlížeč nikdy nefunguje). V tomto případě může samotná funkce zpracování pouze otáčet řádek, takže negeneruje žádná přesměrování.

Otočená objednávka se zobrazí v potvrzovacím okně v Chrome a IE. Ve Firefoxu se tento řádek nijak nezobrazuje.



window js pododdělení (14)

Chci zavřít okno/kartu prohlížeče. Zkoušel jsem to s jQuery:

JQuery(window).bind("beforeunload", function() ( return cancel("Opravdu chcete zavřít?") )))

Ale vin se také zabývá vyplňováním formuláře, což nechci. Chci něco, co ti poslouží, až když úředník zavře okno.

Počínaje jQuery 1.7 je metoda .live() zastaralá. Použijte vikoryst.on() k přidání samplerů. Uživatelé starších verzí jQuery jsou vinni za vikoristavuyut.delegate() na overhaul.live()

$(window).bind("beforeunload", function() ( return true || potvrdit("Opravdu chcete zavřít?"); ));

$(okno).unbind();

JQuery(window).bind("beforeunload", function (e) ( var activeElementTagName = e.target.activeElement.tagName; if (activeElementTagName != "A" && activeElementTagName != "INPUT")) ( return "Opravdu chceš zavřít?" ;))))

Moje svědectví je založeno na jednoduchých testech.

JAK

Div. Potvrzení @SLaks.

$(window).on("beforeunload", function() ( return inFormOrLink ? "Opravdu chcete zavřít?" : null; ))

Jak dlouho vám bude trvat, než otevřete prohlížeč, abyste zavřeli stránku?

Zdá se, že když uživatel zavře stránku (tlačítko x nebo CTRL + W), prohlížeč tento kód před unloadem uloží, s výjimkou významu tohoto termínu. Jedinou nevýhodou je potvrzovací zpráva (vrácení „Opravdu chcete zavřít?“), která bude indikovat potvrzení korespondenta.

Chrome: 2 sekundy.
Firefox: ∞ (buď dvojité kliknutí nebo zavřený Primus)
Hrana: ∞ (nebo dvojité kliknutí)
Průzkumník 11: 0 sekund.
Safari: DĚLAT

Co jsme použili k ověření:

  • Server Node.js Express s protokolem dotazů
  • Urážlivý krátký soubor HTML

Ti, kteří mohou pracovat, mají odeslat co nejvíce požadavků, než spodní prohlížeč dokončí svou stránku (synchronně).

function request() ( return $.ajax(( typ: "GET", url: "http://localhost:3030/" + Date.now(), async: true )).responseText; ) window.onbeforeunload = ( ) => ( while (true) (​​​request(); ) return null; )

Chrome výstup:

GET /1480451321041 404 0,389 ms - 32 GET /1480451321052 404 0,219 ms - 32 ... GET /hello/1480451322998 od odeslání může trvat několik mil. sekund 0,328 sekund

Zkuste to taky

Window.onbeforeunload = function () ( if (pasteEditorChange) ( var btn = potvrdit("Chcete uložit změny?"); if(btn === true)( SavetoEdit();//vaše volání funkce) else ( windowClose();//vaše volání funkce ) ) else ( windowClose();//vaše volání funkce ) );

Jen to otoč...

Funkce wopen_close())( var w = window.open($url, "_blank", "width=600, height=400, scrollbars=no, status=no, resizable=no, screenx=0, screeny=0") ); w.onunload = function() ( if (window.closed) ( alert("okno zavřeno"); )else( alert("právě obnoveno"); ) ) )

Bohužel se znovu zapojí, přesměruje novou stránku nebo zavře prohlížeč. Alternativou je chytit identifikátor, který představuje koncept, a protože formulář nevyžaduje žádnou funkci, a protože nemá identifikátor formuláře, pracujte s těmi, které chcete vydělat, pokud se trh zavře. Nedokážu si představit, že je to stejně možné a jsem z toho unavená.

Následující akce můžete provést tak, že spodní klient nejprve zavře kartu. javascript ukazuje prohlížeči, aby zavřel kartu / zavřel prohlížeč, pokud je váš seznam velký a karta je zavřená, dokud není dokončena, jste beznadějní. Můžete to zkusit, ale s mými znalostmi se nebudete moci držet dál od ničeho jiného.

Window.addEventListener("beforeunload", funkce (e) ( var potvrzeníMessage = "\o/"; /* Máte zde malý kód akce */ (e || window.event).returnValue = potvrzeníMessage; //Gecko + IE vrátit potvrzovací zprávu;//Webkit, Safari, Chrome));

Pokud je váš formulář přesměruje na jinou stranu (respektuji, že běží před uvolněním), můžete zkusit změnit formulář před uvolněním na kliknutí ajax. Nezničí tedy vaši stránku před uvolněním formuláře a své vazby před uvolněním můžete upravit podle vlastního uvážení.

Chcete-li zjistit, jak dobře pracovat s prvky prohlížeče třetích stran, jako je Telerik (například RadComboBox) a DevExpress, které z různých důvodů používají tagy Anchor, podívejte se na doprovodný kód, který je mírně zhuštěnou verzí kódu desm se zkracujícím se selektorem propojujícím značky pro vaše vazby:

Var yFormOrLink; $("a:not(), a").live("click", function() ( inFormOrLink = true; )); $("form").bind("odeslat", function() ( inFormOrLink = true; )); $(window).bind("beforeunload", function(eventObject) ( var returnValue = undefined; if (! inFormOrLink) ( returnValue = "Opravdu chcete zavřít?))"; } eventObject.returnValue = returnValue; return returnValue; });!}!}

Jsem vítězem Slaks, ale nemyslím si to, protože fragmenty jsou nejprve analyzovány jako řádek a poté zobrazeny v potvrzovacím okně prohlížeče. Takto se zobrazuje hodnota true, například true.

Je to jen vikoristické a zlomyslné volání. Kód osy

Var preventUnloadPrompt; var messageBeforeUnload = "moje zpráva zde - Jak mohu urychlit tuto stránku?"; //var redirectAfterPrompt = "http://www.google.co.in"; $("a").live("click", function() ( preventUnloadPrompt = true; )); $("form").live("submit", function() ( preventUnloadPrompt = true; )); $(window).bind("beforeunload", function(e) ( var rval; if(preventUnloadPrompt) ( return; ) else ( //location.replace(redirectAfterPrompt); return messageBeforeUnload; ) return rval; ))

Var validNavigation = false; jQuery(document).ready(funkce () ( wireUpEvents(); )); function endSession() ( // Karta prohlížeče nebo prohlížeče je zavřená // Proveďte to zde ... alert("bye"); ) function wireUpEvents() ( /* * Seznam událostí, které se spouštějí onbeforeunload v IE * zkontrolujte http http: //msdn.microsoft.com/en-us/library/ms536907(VS.85).aspx */ window.onbeforeunload = function () ( debugger if (!validNavigation) ( endSession(); ) ) // Připojit událost stisknutí klávesy vyloučit obnovení F5 $(document).bind("stisknutí klávesy", funkce (e) ( debugger if (e.keyCode == 116) ( validNavigation = true; )))); // Připojí událost click pro všechny odkazy na stránce $("a").bind("click", function () ( debugger validNavigation = true; )); // Připojte odeslání události pro všechny formuláře na stránce $("form").bind( "submit", function () ( debugger validNavigation = true; )); ));) 'sem zadejte kód'

Můj problém: možnost onbeforeunload bude spuštěna pouze v případě, že počet kliknutí není shodný. Dostal jsem řešení z podobných vláken na SO, takže moje řešení by fungovalo. Dobrý den, můj kód je vysloven.

$(document).ready(function() ( updatefgallowPrompt(true); window.onbeforeunload = WarnUser; ) funkce WarnUser() ( var allowPrompt = getfgallowPrompt(); if(allowPrompt) ( saveIndexedDataAlert(); updatefgallowPrompt(true); událost .stopPropagation ) ) funkce saveIndexedDataAlert() ( var allowPrompt = getfgallowPrompt(); var lenIndexedDocs = parseInt($("#řadit3 > li").size()) + par#Int$ ul").size()); (allowPrompt && $.trim(lenIndexedDocs) > 0) ( event.returnValue = "Vaše zpráva"; } else { event.returnValue = " "; updatefgallowPrompt(true); } } $(document).click(function(event) { $("a").live("click", function() { updatefgallowPrompt(false); }); }); function updatefgallowPrompt (allowPrompt){ //exit msg dfds $("body").data("allowPrompt", allowPrompt); } function getfgallowPrompt(){ return $("body").data("allowPrompt"); }!}!}

Po vystoupení pro mě;

$(window).unload(function(event) ( if(event.clientY)< 0) { //do whatever you want when closing the window.. } });

Window.onbeforeunload = function () ( return "Opravdu chcete zavřít?"; );

Možná stačí znovu zpracovat následující, abyste znovu zpracovali formulář pro odeslání:

JQuery("form").submit(function() ( jQuery(window).unbind("beforeunload"); ... ));

V této lekci se seznámíme s různými metodami objektu okna, které umožňují otevřít a zavřít okno, což znamená, že okno je zavřené, a také odstranit jeho vnitřní vlastnosti atd.

Metody objektu okna: open(), close(), print(), focus() a blur().

V této části se podíváme na následující metody objektu okna:

  • open() – přiřazení pro otevírání oken (záložek);
  • close() – používá se pro zavírání oken. Používá se hlavně k zavření oken, která se zavírají pomocí metody open();
  • print() - přiřazení pro sebe místo okna;
  • focus() - účely pro přenos fokusu do zadaného okna;
  • blur() - nastavení pro odstranění fokusu z určeného okna.
metoda open(). K otevření nového okna (karty) v prohlížeči se používá následující syntaxe:

Parametry metody:

  • První parametr určuje adresu URL stránky, na kterou musíte kliknout v okně. Pokud nezadáte významný parametr, okno zobrazí prázdnou stranu (about:blank).
  • Další parametr metody Open určuje hodnotu cílového atributu nebo název okna. Podporovány jsou následující hodnoty:
    • _blank - URL se zobrazí v novém okně (záložce). Pro mysl je důležité vikorist;
    • _parent - URL bude obdivovat Father's frame. Pokud nic jiného, ​​URL se zobrazí v přesném okně (záložce);
    • _self - URL se zobrazí v přesném okně;
    • _top - načte všechny rámce a umístí adresu URL do konkrétního okna prohlížeče (záložka). Pokud nic jiného, ​​URL se zobrazí v přesném okně (záložce);
    • Jako parametr můžete také zadat název okna. Toto je interní a lze k němu přistupovat pomocí webových prohlížečů pro přístup k funkcím a metodám tohoto okna.
  • Třetí parametr je pro zadání množiny oprávnění v okně, které se zadává přes kómatu. Podporovány jsou následující hlavní orgány:
    • vlevo , horní souřadnice (v pixelech) levého horního rohu okna prohlížeče a levého horního rohu obrazovky. Význam těchto autorit může být kladný a rovný 0;
    • výška, šířka - výška a šířka pracovní plochy okna prohlížeče. Při zadávání hodnoty je nutné zajistit, aby šířka a výška okna prohlížeče nemohla být menší než 100 pixelů;
    • resizable - logická síla okna, která má zvýšit nebo zvýšit možnost změny velikosti okna prohlížeče. Tento výkon nabývá následujících hodnot: ano nebo 1 a ne nebo 0;
    • posuvníky - nejlogičtější okno, které je navrženo tak, aby povolilo nebo zakázalo zobrazení rolování místo okna prohlížeče. Tento výkon nabývá následujících hodnot: ano nebo 1 a ne nebo 0;
    • stav - logická síla okna, která je určena pro zvýraznění nebo zobrazení stavového řádku prohlížeče. Tato síla nabývá následujících hodnot: ano nebo 1 a ne nebo 0.

Pojďme se podívat na pažbu:

1. V novém okně otevřete prázdnou stránku about:blank. Je důležité, aby se šířka a výška rovnaly 250 pixelům:

Window.open("","","width=250,height=250");

2. Otevřete webovou stránku „http://site/“ z okna streamování:

Window.open("http://site/", "_self");

3. Otevřete nové okno, které přináší píseň síly (top=100, left=100, width=400, height=500, scrollbars=yes, resizabie=yes):

Window.open("http://site", "_blank", "top=100, left=100, width=400, height=500, scrollbars=yes, resizable=yes");

Jak komunikovat se světem poté, co je odhalen?

Metoda open() umožňuje otevřít okno a zrušit výběr okna. Tato zpráva vám umožňuje komunikovat s tímto světem a získat další podporu od úřadů a metod. Tobto. Můžeme použít další kód JavaScript, vykreslený v jednom okně, a překrýt jej jiným oknem.

Chcete-li například přejít na objekt dokumentu v otevřeném okně:

Otevřete prázdné nové okno a zadejte do něj následující text:

Var myWindow = window.open("", "", "width=250, height=250"); myWindow.document.write("

Herecký text

");

Poznámka: Můžete pracovat pouze s okny, která jste otevřeli, nemůžete obchodovat s jinými okny.

metoda close().

To je účel pro uzavření okna. Tato metoda nemá žádné parametry. Toto okno se používá k uzavření oken vytvořených metodou open(). V opačném případě, pokud se pokusíte zavřít okno (záložku), otevřete jej se samotným uživatelem (ne pomocí JavaScriptu), pak prohlížeč prostřednictvím bezpečnostní kontroly požádá uživatele o potvrzení, že jste zadali tuto akci.

Vytvořme například tlačítka pro otevírání a zavírání oken s názvy myWindow:

//vytvoří změnu, která uloží zprávy odeslané do objektu okna otevřeného okna var myWindow; function myWindowOpen ( myWindow = window.open("http://www.yandex.ru", "myWindow", "width=250, height=250"); ) function myWindowClose ( if (myWindow) ( myWindow.close() myWindow = null; ) ) Otevřít okno Zavřít okno

metoda print().

Vіn účely pro sebe navzájem místo vikna. Tato metoda nemá žádné parametry.

funkce myPrint() ( window.print(); ) Druhá strana

metoda focus().

To se používá k zaostření na zadané okno. Tato metoda nemá žádné parametry.

metoda blur().

Neexistují žádná přiřazení k odstranění fokusu z určeného okna. přesune do pozadí. Tato metoda nemá žádné parametry.

function myWindowOpen() ( var myWindow = window.open("", "", "width=200,height=100"); ) function myWindowFocus() ( myWindow.focus(); ) function myWindowBlur() ( myWindow.bl (; ) Otevřít okno Zaměřit okno Přesunout okno na pozadí

Síla okna objektu: jméno, otvírák, zavřeno.

Ve které sekci budeme uvažovat o následujících schopnostech objektu okna:

  • jméno – slouží k odstranění nebo vložení vnitřního názvu okna;
  • otvírač - umožňuje načíst zprávy z aktuálního okna (objektu okna), ze kterého bylo okno otevřeno;
  • zavřeno - síla logického typu, která se změní na: true, pokud je okno zavřené, a false, pokud je okno otevřené.
Název síly

Tato funkce se často používá ke změně vnitřního názvu okna poté, co je již zavřeno. Kromě toho lze hodnotu názvu upravit tak, aby odpovídala hodnotě vnitřního názvu okna.

Vnitřní název okna, nikoli v řadě, je umístěn mezi tagem, který otevírá a zavírá nadpis - jedná se o název okna, který je určen pro prodejce. Tobto. To je pro koristuvach neviditelné.

Toho se využívá hlavně u hypervynucených formulářů pro vložení okna, ve kterém je potřeba otevřít stranu. Například k označení vnitřního názvu okna v hypertextovém odkazu se používá atribut target. Pokud má prvek atribut target="searchWindow", pak se po kliknutí na zprávu prohlížeč okamžitě pokusí najít okno s takovým interním názvem 'yam (searchWindow), jako okno s takovým interním To znamená, že otevřete nové okno a pojmenujete ho searchWindow . A pokud taková jména použijete, neotevře se nové okno, ale stránka za zadanou zprávou pro toto okno bude znovu povolena. Okna prohlížeče za sebou neskrývají interní názvy.

Otevřete si například stránku „http://www.google.com/“ v okně s názvem myWindow:

window.name = "myWindow";

Například otevřeme okno za další metodou open() a zobrazíme jej pod novým názvem:

var wnd = window.open("","myTest","width=200, height=300"); wnd.document.write("

Toto je vždy jméno: "+wnd.name+".");

Elektrický otvírač

Tato síla vám umožňuje podržet okno a odeslat jej do výstupního okna (objekt okna). okno bylo otevřené.

Například máte výstupní okno (1), ve kterém otevřete další okno (2) pomocí metody open(). V tomto okně (2) můžete odstranit okno (1) pomocí přídavné síly otvírače.

funkce openMyWindow() ( var myWindow=window.open("","","width=200,height=200"); myWindow.document.write("Otevřít okno (2)");