2009-05-21 11 views
0

アップロードされた添付ファイルと各添付ファイルの横にアイコンが表示され、ポップアップウィンドウ(クリック時)が開き、添付ファイルごとにさまざまな添付情報を編集できるようになりました。ユーザーはいつでも複数のポップアップを開くことができないことを確認するにはどうすればよいですか?

私の質問は以下のとおりです。

  1. がどのように私は、ユーザーがユーザーが別のポップアップウィンドウを開こうとすると、任意の一時点

  2. で唯一のポップアップウィンドウを開くことが許可されていることを確認します、アラートがポップアップし、複数のウィンドウを開くことが許可されていないことを通知します。

答えて

2

var vWin = null; 
var msWindowUsedMessage = "A previous action was not completed.\nClose the window and try again."; 

function IsWindowUsed(oWindowToCheck) { 
    if (!oWindowToCheck.closed && oWindowToCheck.location) { 
     alert(msWindowUsedMessage); 
     oWindowToCheck.focus(); 
     return true; 
    } 
    return false; 
} 
function Open_New_Window(sUrl, sTitle, sParams) { 
    var winLeft = top.screenLeft + 50; 
    var winTop = top.screenTop + 50; 
    var oWindowHandle = window.open(sUrl, "", sParams + ",toolbar=no,top=" + winTop + ",left=" + winLeft); 
    oWindowHandle.opener = self; 
    return oWindowHandle; 
} 

function Add() { 
    if (IsWindowUsed(vWin)){ 
     return; 
    } 
    var sParams = "width=380,height=10,status=no,resizable=yes"; 
    var sUrl = "add.aspx"; 
    vWin = Open_New_Window(sUrl, 'Add', sParams); 
} 
0

各ポップアップをモーダルにして、メインページとやりとりする前に解除しなければならない理由を教えてください。これはjQuery Dialog pluginで行うのはかなり簡単ですが、javascript/cssのマジックで自分で作ることもできます。

3

開くときにポップアップに名前を付けます。これにより、後続のクリックがすべて同じポップアップウィンドウで強制的に開かれます。 window.unloadイベントを実装して、ユーザーが現在保存されているページから移動しないようにすることができます。

jQueryを使用している場合は、ui.dialogを使用してページ内の機能を提供することをお勧めします。次に、一度にユーザーを強制的に編集します。

0

ポップアップがトリガーされるたびに設定されているかどうかを確認するには、Cookieまたはグローバル(必要に応じてクライアント側またはサーバー側)フラグを作成してください。

あなたが窓に「ハンドル」と、それが開いているか、そうでなければ、ここでのサンプルで確認し使用することができます
3

新しいポップアップを作成すると、新しいウィンドウを指すように変数を設定します閉じたかどうかを確認してください。

var currentPopup = null; 

function openPopup(){ 

    //test that we have either not opened a popup or have closed it. 
    //references to closed windows don't disapear, but have their closed property set to true. 
    if(!currentPopup || currentPopup.closed){ 

     //set the new currentPopup variable to reference the new window. 
     currentPopup = window.open(...); 
    } 
    else{ 
     //A window is open! Display error message. 
     //for the best user experience use a nice way to display the message as opposed to using an alert(); 

    } 
} 
関連する問題