• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

jQuery - ilość otwartych kart

+1 głos
343 wizyt
pytanie zadane 15 kwietnia 2017 w JavaScript przez Captivity Obywatel (1,030 p.)
Cześć,
Chcę sobie stworzyć rozszerzenie do chrome, które stworzy mi alert, gdy będę chciał zamknąć przeglądarkę z otwartymi dwoma kartami.

Rozszerzenie wiem jak stworzyć, ale nie potrafię znaleźć tego, jak w jQuery (a może JS zwykłym) stworzyć ifa, który sprawdzi ile jest otwartych kart. Oczywiście w jQuery okno przeglądarki to "window", a jak nazywa się w jQuery karta przeglądarki?

1 odpowiedź

+3 głosów
odpowiedź 15 kwietnia 2017 przez ScriptyChris Mędrzec (190,190 p.)
wybrane 18 kwietnia 2017 przez Captivity
 
Najlepsza

Oczywiście w jQuery okno przeglądarki to "window"

Nie. Obiekt window nie reprezentuje okna przeglądarki, ale globalny obiekt dla danej strony - chociaż gdy na stronie umieszczone są elementy <iframe> to każdy z nich posiada własny obiekt window. Ani z poziomu obiektu window ani z poziomu DOM API (a JavaScript ma dostęp do elementów HTML strony za pośrednictwem właśnie tego API) nie masz dostępu do interfejsu przeglądarki; czyli jej okien (patrząc z poziomu programu jakim jest przeglądarka internetowa), kart, ustawień itd.. Dopiero z poziomu wtyczek, czyli wykorzystując np. Chrome API, Firefox API możesz działać na przeglądarce.


https://developer.chrome.com/extensions/tabs#method-query

Metoda chrome.tabs.query zwróci Ci listę wszystkich tabsów. Wrzuć tam if, który sprawdzi, czy jest ich więcej niż 2 (czy ile chcesz).

Z tym, że z tego co pamiętam, to nie da się wykonać metody alert z poziomu wtyczki. Możesz to zrobić z poziomu skryptu wstrzykniętego do strony internetowej (tzw. content script), ale on z kolei nie ma dostępu do powyższej metody Chrome API z powodu bezpieczeństwa. Możesz natomiast np. w background script sprawdzać ilość otwartych kart i, jeśli nastąpi próba zamknięcia przeglądarki przy określonej ilości otwartych kart, wtedy wysłać event do aktualnie otwartej karty, aby tam odpalić alert. Albo skorzystać z Chrome Notifications: https://developer.chrome.com/apps/notifications

Podobne pytania

0 głosów
1 odpowiedź 371 wizyt
0 głosów
0 odpowiedzi 111 wizyt
0 głosów
1 odpowiedź 670 wizyt
pytanie zadane 28 czerwca 2018 w JavaScript przez precell Początkujący (470 p.)

93,607 zapytań

142,530 odpowiedzi

322,999 komentarzy

63,098 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...