Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

Sprawdzanie bezczynności nowego okna.



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Webmasterstwo
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
oskiiq



Dołączył: 10 Lut 2016
Posty: 3

PostWysłany: Pon Lip 25, 2016 4:09 pm  OP    Temat postu: Sprawdzanie bezczynności nowego okna. Odpowiedz z cytatem Pisownia

Witam,
Stworzyłem przycisk, który otwiera nową kartę i przenosi mnie na inną stronę:
Kod:

var okno;
page = "jakiś adres";
function open()
{
//otwieram okno
win = window.open(page, "_blank");
}


Chciałbym teraz wykryć bezczynność na nowo otwartej stronie(brak ruchów kursora, kliknięć), a następnie wykonać jakąś czynność. Czy jest to w ogólę możliwe ? Przejrzałem kilkadziesiąt tematów, ale udało mi się uzyskać tylko sprawdzanie ruchu na głównej stronie"index".
Chodzi mi o coś takiego :
Kod:
function idleLogout() {
    var t;
    window.onload = resetTimer;
    window.onmousemove = resetTimer;
    window.onmousedown = resetTimer; // catches touchscreen presses
    window.onclick = resetTimer;     // catches touchpad clicks
    window.onscroll = resetTimer;    // catches scrolling with arrow keys
    window.onkeypress = resetTimer;

    function logout() {
        window.location.href = 'logout.php';
    }

    function resetTimer() {
        clearTimeout(t);
        t = setTimeout(logout, 10000);  // time is in milliseconds
    }
}
idleLogout();
tyle, że dla nowo otwartej karty.
Z góry dziękuje za pomoc.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Sousuke



Dołączył: 19 Lis 2005
Posty: 598
Skąd: Wrocław

PostWysłany: Sro Lip 27, 2016 9:03 am      Temat postu: Odpowiedz z cytatem Pisownia

Z tego co wiem, to tam musiałbyś ten skrypt umieścić. Twój kod może wykonywać się tylko na tej samej stronie, z której pochodzi.
_________________
Blog na temat programowania w .NET
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora Numer GG
djsowa
Moderator


Dołączył: 28 Mar 2006
Posty: 2256
Skąd: Warszawa

PostWysłany: Sro Lip 27, 2016 9:22 am      Temat postu: Odpowiedz z cytatem Pisownia

Ewentualnie można otworzyć w iframe, tam powinno się to udać.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Sinus32



Dołączył: 20 Sty 2007
Posty: 895

PostWysłany: Sro Lip 27, 2016 7:49 pm      Temat postu: Odpowiedz z cytatem Pisownia

Sousuke napisał:
Z tego co wiem, to tam musiałbyś ten skrypt umieścić. Twój kod może wykonywać się tylko na tej samej stronie, z której pochodzi.

To nie do końca prawda.
djsowa napisał:
Ewentualnie można otworzyć w iframe, tam powinno się to udać.

Nie ma takiej potrzeby.

Wartość zwracana z window.open jest referencją do nowo otwartego okna. Korzystając z niej można otwartym oknem "sterować" tak samo jak oknem znajdującym się w iframe, czy głównym oknem dostępnym przez obiekt window.

Na początek spróbował bym kodu w stylu
Kod:
win = window.open(page);
win.onload = resetTimer;
win.onmousemove = resetTimer;
win.onmousedown = resetTimer;
win.onclick = resetTimer;
win.onscroll = resetTimer;
win.onkeypress = resetTimer;
i sprawdził co się stanie.

Tak przy okazji polecam wywoływać window.open bez dodatkowych parametrów. Przeglądarka będzie wtedy pewna, że nie chcesz mieć ruchomego okienka z własną belką i że chcesz by przeglądarka otworzyła daną stronę tak jak domyślnie otwiera nową stronę nie zamykając aktualnej.

Nawiązując do tego co napisał Sousuke: jeżeli chcesz ingerować w stronę którą otwierasz w sposób który podałem, to strona którą otwierasz musi być w tej samej domenie co strona która wykonuje kod.
Jeżeli tak nie będzie, to są trzy możliwe scenariusze:

1. Korzystasz ze starych IE podatnych na ataki i wszystko zadziała
2. Korzystasz z aktualnych przeglądarek, a strona którą otwierasz ma poprawnie skonfigurowany CORS pozwalający twojej domenie na ingerencję. Wtedy też wszystko zadziała.
3. Korzystasz z aktualnych przeglądarek, a strona którą otwierasz cię nie zna / nie pozwala na wykonywanie skryptów z twojej domeny. Wtedy przeglądarka nie dopuści do skutecznego wykonania twojego kodu by chronić użytkownika przed całym plugastwem sieci.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
Sousuke



Dołączył: 19 Lis 2005
Posty: 598
Skąd: Wrocław

PostWysłany: Czw Lip 28, 2016 8:50 am      Temat postu: Odpowiedz z cytatem Pisownia

Dzięki wielkie, nie miałem o tym pojęcia :)
_________________
Blog na temat programowania w .NET
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora Numer GG
oskiiq



Dołączył: 10 Lut 2016
Posty: 3

PostWysłany: Czw Lip 28, 2016 10:50 am  OP    Temat postu: Odpowiedz z cytatem Pisownia

Cytat:

1. Korzystasz ze starych IE podatnych na ataki i wszystko zadziała
2. Korzystasz z aktualnych przeglądarek, a strona którą otwierasz ma poprawnie skonfigurowany CORS pozwalający twojej domenie na ingerencję. Wtedy też wszystko zadziała.
3. Korzystasz z aktualnych przeglądarek, a strona którą otwierasz cię nie zna / nie pozwala na wykonywanie skryptów z twojej domeny. Wtedy przeglądarka nie dopuści do skutecznego wykonania twojego kodu by chronić użytkownika przed całym plugastwem sieci.


A właśnie zastanawiałem się czemu sposób z
Kod:
win.
nie działa :). Zapomniałem o domenie. Wielkie dzięki za pomoc !
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Webmasterstwo Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.39146 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |