2013-09-30 24 views
5

Buduję szybkie demonstracje VOIP za pomocą Skype'a, a po naciśnięciu przycisku połączenia aplikacja Skype odrywa uwagę od przeglądarki. Możesz wypróbować tutaj http://developer.skype.com/skype-uris/skype-uri-tutorial-webpages, gdzie znajdziesz kilka linków "Wypróbuj tutaj". Kiedy klikam te linki, chciałbym, aby przeglądarka zachowała ostrość. Czy jest jakiś sposób na zrobienie tego?zapobiega przeganianiu przez przeglądarkę zewnętrznych połączeń aplikacji

Dzięki.

Odpowiedz

4

To, co musisz zrobić, to najwyraźniej "kradzież ostrości" z moich wyszukiwań w Internecie.

Co najmniej w odniesieniu do systemu Windows nie wydaje się, że można to zrobić w niezawodny sposób z poziomu samej przeglądarki.

Właśnie wybrałem opcję "fokusu kradzieży" (to jest to, co tylko rozwiązanie JavaScript musiałoby zrobić, aby to zrobić) i znalazłem wiele odpowiedzi pokazujących, że choć teoretycznie możliwe, w zależności od konfiguracji systemu Windows kradnąc ostrość z dala od Skype w przeglądarce prawdopodobnie nie działałby w większości przypadków.

Skargi w linkach do Google są liczne, a niektóre z nich są sprzeczne, ale wygląda na to, że "kradzież fokusu" w niezawodny sposób nie będzie obsługiwana.

To dobrze, jeśli o tym pomyśleć - osobiście nie chcę, żeby jakiś stary program JavaScript działający w mojej przeglądarce zmienił moje skupienie z tego, nad czym pracuję z powrotem do przeglądarki, chcąc nie chcąc - to by być bardzo irytującym zachowaniem strony internetowej, aby móc w najlepszym razie zrobić, co czyni mój system bezużytecznym w najgorszym.

Jeśli mógłbyś to zrobić w tym przypadku, stosując metodologię dozwoloną w przeglądarce, to może ktoś inny - nawet wrogie strony internetowe.

Najlepszą odpowiedzią jest to, aby fokus nie opuszczał przeglądarki, ale nie mam pojęcia, jak to zrobić w konkretnym przypadku. Być może to, co używasz do uruchomienia Skype, może mieć opcję lub coś, co można uruchomić w tle lub cokolwiek innego, nigdy nie zmieniając fokusu.

Nie trafiłem na konkretne linki dotyczące systemów operacyjnych Apple, Linux lub systemów mobilnych, ale mam wrażenie, że dotyczą one również tych samych problemów i ograniczeń.

Oto niektóre z linków w wyszukiwarce Google (i przepraszam za złe wieści dla swoich potrzeb):

Microsoft Answers Forum Post

Focus stealing is evil

http://pcsupport.about.com/od/windowsxp/ht/stealingfocus02.htm

+0

Ok, dzięki za szczegółowe odpowiedź! – frenchie

1

można otworzyć go w nowym oknie, a następnie zamknij nowe okno i skupić się na twoich

somthing jak:

a=window.open('skype:ohadcn?chat',10,10); 
//i couldn't find a relevant event, onload() do not work for me here 
//so i used setTimeOut, hoping that two seconds is enough to open skype but not enough to loose the user 
setTimeout(function(){ a.close();window.focus();},2000) 
1

poszedłem na stronę samouczka skype w Chrome, wychowany konsolę i wypróbował odpowiedź Ohada, ale nie zwrócił uwagi na tutorialową stronę internetową.

Próbowałem nawet skrypt wiecznie położyć nacisk w polu tekstowym Szukaj:

function ASDF() { 
     document.getElementsByName("q")[0].focus(); 
     setTimeout(ASDF, 1000); 
    } 
    setTimeout(ASDF, 1000); 

nadal nie ma szczęścia.

Próbowałem zmienić skrypt Ohada, aby ponownie otworzyć stronę samouczka w nowym oknie po otwarciu aplikacji skype. To działa, jeśli strona tutoral/konsola była tylko zakładka w oknie:

a=window.open('skype:ohadcn?chat',10,10); 
setTimeout(function(){ 
    a.close(); 
    a=window.open('http://developer.skype.com/skype-uris/skype-uri-tutorial-webpages', 10, 10); 
    window.close();},2000); 

Jednakże, jeśli skrypt/konsoli strona poradnik był w oknie z innymi kartami, to nie powrót skupić na ponowne otwarcie strony. Nie wspominając, że IE może ostrzec użytkownika, że ​​stara strona próbuje zamknąć.

Nie sądzę, że istnieje sposób, aby konsekwentnie osiągnąć swój cel, ale zastrzegam sobie prawo do bycia niewłaściwym.