5

Skype を使用して簡単な VOIP デモを作成しています。通話ボタンを押すと、Skype アプリケーションがブラウザからフォーカスを奪います。ここで試すことができますhttp://developer.skype.com/skype-uris/skype-uri-tutorial-webpagesここには、いくつかの「ここで試す」リンクがあります。これらのリンクをクリックしたときに、ブラウザーがフォーカスを維持できるようにしたいと考えています。これを行う方法はありますか?

ありがとう。

4

3 に答える 3

4

あなたがしなければならないことは、私のウェブ検索から明らかに「フォーカス盗用」と呼ばれています。

少なくとも Windows に関する限り、ブラウザだけでこれを行う信頼できる方法はないようです。

私はちょうど「フォーカス盗用」(これは、これを行うためにJavaScriptのみのソリューションが必要とするものです)をグーグルで検索し、理論的には可能ですが、ブラウザによってSkypeからフォーカスを盗むWindowsの構成に応じて、それを示す多くの回答を見つけましたほとんどの場合、おそらく機能しません。

Google リンクの苦情は多数あり、いくつかの回答は矛盾していますが、ブラウザに確実に「焦点を盗む」ことはサポートされていないようです.

考えてみれば、これは良いことです。個人的には、ブラウザーで実行されている古い JavaScript プログラムだけで、自分が作業しているものからブラウザに意図的に戻ってフォーカスを変更したくありません。これは非常に面倒です。 Web ページの動作がせいぜいできるようになり、最悪の場合、システムが役に立たなくなります。

この場合、ブラウザで許可されている何らかの方法論を使用してそれを行うことができれば、悪意のある Web サイトでさえ、他の誰でも行うことができます。

最良の答えは、ブラウザーからフォーカスを離さないことですが、特定のケースでそれを行う方法がわかりません。おそらく、Skype を起動するために使用している手段には、バックグラウンドで起動するためのオプションまたは何かがあり、フォーカスを変更することはありません。

Apple OS、Linux、またはモバイル OS に関連する特定のリンクにはアクセスしませんでしたが、同じ懸念と制限がそれらにも当てはまると感じています。

Google 検索のリンクの一部を次に示します (必要に応じて悪いニュースで申し訳ありません)。

Microsoft Answers フォーラムの投稿

フォーカス盗用は悪

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

于 2013-10-09T23:01:15.327 に答える
1

Chrome でスカイプのチュートリアル ページに移動し、コンソールを起動して Ohad の回答を試しましたが、チュートリアルの Web ページにフォーカスが戻りませんでした。

検索テキストボックスにフォーカスを永続的に配置するスクリプトも試しました。

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

まだ運がありません。

スカイプアプリを開いた後、新しいウィンドウでチュートリアルページを再度開くように、オハッドのスクリプトを変更してみました。チュートリアル/コンソール ページがウィンドウ内の唯一のタブである場合に機能します。

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);

ただし、チュートリアル ページ/コンソール スクリプトが他のタブを含むウィンドウにある場合、再度開いたページにフォーカスが戻りませんでした。言うまでもなく、IE は元のページが閉じようとしていることをユーザーに警告する場合があります。

あなたの目標を一貫して達成する方法はないと思いますが、私は間違っている権利を留保します.

于 2013-10-09T22:49:21.563 に答える
1

新しいウィンドウで開いてから、新しいウィンドウを閉じて、自分のウィンドウに再び焦点を合わせることができます

次のようなもの:

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)
于 2013-10-04T20:46:39.133 に答える