1
  • worklist.jsp という名前の親ウィンドウがあります。
  • 親ウィンドウにはボタンがあります。ボタンをクリックすると、getEventLogUser() という名前の関数が呼び出されます。
  • getEventLogUser() 関数は、子ウィンドウを開く popupWindowWithPost() という名前の関数を呼び出します。両方の関数は別の js ファイル (utility.js) にあります。
  • 私の必要性は、子が開いているときに親ウィンドウを無効にする必要があることです。

worklist.jsp:

<div class="claro" id="menuDiv21" onclick="setWidgetproperty(this.id,'x','navMenu21');" onmousedown="setMenuBarProperty('navMenu21');" onmouseup="setDocStyle(this.id)" style="border:1px dotted white; left: auto; position: absolute; top: 620px;">
     <div dojotype="dijit.MenuBar" id="navMenu21" style="font-size:11pt;" title="MenuBar">
          <div dojotype="dijit.MenuBarItem" id="SearchMenu21" onclick="getEventLogUser();setMenuId(this.id);" style="font-size:11pt;" title="menuBarItem">
               <img class="images" id="SearchMenu21" name="search5.png" onclick="setImgProperty(this.id)" src="images/uploads/search.png" style="height:20px; width:20px;">
               Search
          </div>
</div>
</div>

utility.js:

function getEventLogUser(){
        var dummyvar = document.getElementById("CWPROCESSEVENTLOG.OBJECT_ID").value;
        popupWindowWithPost("eventLogUser.jsp",'height=600px,width=960px,top=50px,left=150px,scrollbars=no,sizable=yes,toolbar=no,statusbar=no','processManager',dummyvar);
}
function popupWindowWithPost(url, windowoption, name, params)
{
         var form = document.createElement("form");
         form.setAttribute("method", "post");
         form.setAttribute("action", url);
         form.setAttribute("target", name);
         var input = document.createElement('input');
         input.type = 'hidden';
         input.name = "PARAM";
         input.value = params;
         form.appendChild(input);
         document.body.appendChild(form);
         window.open(url, name, windowoption);
         form.submit();
         document.body.removeChild(form);
}
4

3 に答える 3

2

ウィンドウを無効にする簡単な方法の 1 つ (disable の定義が上記の私のコメントと一致すると仮定) は、ウィンドウを非表示の div でオーバーレイし、信じられないほど大きな z-index を与えることです。 index > 1 の場合でも、その非表示の div によってカバーされます。

window.showModalDialog() のようなものを避けてみてください。それらは悪いニュースです..もし私があなただったら..絶対に必要でない限り、新しいウィンドウを作成することさえしません(正直なところ、単一のシナリオは考えられません)。 . div と css を使用して、同じウィンドウ内にモーダル ダイアログを作成するだけです. オンラインには、そのためのチュートリアルとライブラリ (つまり、twitter ブートストラップ) がたくさんあります。

于 2013-02-15T05:09:04.587 に答える
0

モーダル iframe を作成するためのfancyboxライブラリを確認してください。私はこれをいくつかのプロジェクトで使用しましたが、あなたが求めることを行います。オーバーレイではありますが、別のウィンドウではありません。

于 2013-02-15T05:08:28.960 に答える
0

私が理解している限り、あなたはモーダルダイアログを開きたいと思っています。window.showModalDialog()の代わりにチェックアウトしwindow.open()ます。また、少し異なるパラメータがあることに注意してください...

また、 の前に配置したい場合は、form.submit();モーダル ウィンドウが閉じられるまで実行されません。

于 2013-02-15T05:05:44.950 に答える