2011-11-07 11 views
-3

いいえ、私は迷惑なポップアップを作ろうとしていません。 SOAツール用のWebベースのコントロールであるシンプルなWebページがあります.SSLツールを使用すると、クライアントが場所に配置したシステムにモバイルアクセスできるようになります。ウィンドウ自体を閉じる前に、サービス側の通信トンネルを閉じる「切断」ボタンを使用せずにWebページを閉じた場合、システムはサービスがタイムアウトするまでアクティブのままです。それは恐ろしいことではないかもしれませんが、同じ通信トンネルが優先順位の高い状況で社内のスタッフによって使用され、顧客のWebサービスがそれを縛っているためにアクセスできない場合、それは非常に悪いことです。ウェブページが閉鎖されたり、遠ざかったりするのを防ぐ

したがって、「切断」をクリックする以外の方法で、ページから移動したり、タブまたはブラウザのインス​​タンスを閉じるのを防ぐ必要があります。私はそれが可能であると確信しています、私はちょうど正しい方向に微笑を必要としています。ソリューションは、特にモバイルブラウザに関して、ブラウザにとらわれないようにする必要があります。

+0

何らかの種類のpingを使用しないでください。 mクライアントからサーバーへ - サーバーがクライアントからx秒以内にpingを受信しなかった場合、セッションはサーバーから自動的にクローズされます - クライアントでこのようなことをしようとすると、巨大なワームが開かれます – ManseUK

+0

確かにオプション。私たちはwindow.onbeforeunloadのようなものを調査しています。これは、モバイルユーザーにとって重要な最小の帯域幅しか必要としないからです。クライアントがサービス上のメソッドにpingを実行するには、最初にモバイルインターネット接続を維持する必要があり、その後x秒(おそらく10秒)ごとにサービスコールを行い、帯域幅をゆっくりと食べることになります。しかし、 "キープアライブ"の品質は他の方法でも役に立ちます(このSOAの背後にあるハードウェアには同様のキープアライブが必要ですが、WCFサービスよりもずっと長いタイムアウトが必要です)。 – KeithS

+0

これは、この質問の重複かもしれません:http://stackoverflow.com/questions/821011/how-do-you-prevent-javascript-page-from-navigating-away –

答えて

0

あなたは右上の閉じるボタンを経由して、ウィンドウを閉じてから使用を停止することはできません。子ウィンドウにフォーカスを強制的に

childWindow = window.open("...", "..."); 
if (childWindow){ 
    childWindow.focus(); 
} 

var childWindow; 

は、ウィンドウオブジェクトに変数を割り当てます。

は、グローバル変数を宣言:あなたはこのかかわらずのようにフォーカスを保持するために、子ウィンドウを強制することができます親のonfocusイベントを使用してください:

focusChildWindow = function(){ 
    if (childWindow != null){ 
     childWindow.focus(); 
    } 
} 

<body onfocus="focusChildWindow();" ...> 
関連する問題