0

iframe を含むページがあります。

iframe は、ダブルクリック イベントをリッスンする gridex グリッドを保持します。

ダブルクリックすると、次のようになります。

function OpenOrderInfo(grid, x, y)
{   

    if(window.event != null)
    {
        var r = window.event.srcElement;
        while(r != null && r.tagName != "TR")
            r = r.parentElement;

       if(r == null || r.className == "")
        {   
            return;
        }
    }
    if(grid != null)
    {
        var row = grid.getSelectedItems().getSelectedItemInIndex(0).getRow();
        if(row != null && row.getRowType() == "Record")
        {
            document.getElementById('hdnSelectedIndex').value = row.getPosition();
            var UID =row.getCellByColumnKey("UID").getValue();
            var OrderNum = row.getCellByColumnKey("PurchaseOrderNumber").getValue();
            var CustomerID = row.getCellByColumnKey("CustomerSiteID").getValue();
            var ReadFlag = row.getCellByColumnKey("ReadFlag").originalImage;
            var VendorID = row.getCellByColumnKey("VendorSiteID").getValue();
            var IsHistoricalPO = row.getCellByColumnKey("IsHistoricalPO").getValue();

            var randNum = new Date().getTime();
            window.open('', 'OrderInfoWin' + randNum, 'channelmode=no,directories=yes,fullscreen=no,height=670,location=no,menubar=no,resizable=yes,width=860,scrollbars=yes,status=yes,titlebar=no,top=5');

            var myform = document.createElement('form');
            myform.action = "OrderInfo.aspx";
            myform.method = "post";
            myform.target = "OrderInfoWin" + randNum;
            myform.style.display = "none";

            var myinp1 = document.createElement('input');
            myinp1.id="myinp1";
            myinp1.name="UID"; 
            myinp1.type="hidden";
            myinp1.value="";

            var myinp2 = document.createElement('input');
            myinp2.id="myinp2";
            myinp2.name="OrderNum"; 
            myinp2.type="hidden";
            myinp2.value="";

            var myinp3 = document.createElement('input');
            myinp3.id="myinp3";
            myinp3.name="CustomerID"; 
            myinp3.type="hidden";
            myinp3.value="";

            var myinp4 = document.createElement('input');
            myinp4.id="myinp4";
            myinp4.name="ReadFlag"; 
            myinp4.type="hidden";
            myinp4.value="";

            var myinp5 = document.createElement('input');
            myinp5.id="myinp5";
            myinp5.name="VendorID"; 
            myinp5.type="hidden";
            myinp5.value="";

            var myinp6 = document.createElement('input');
            myinp6.id = "myinp6";
            myinp6.name = "IsHistoricalPO";
            myinp6.type = "hidden";
            myinp6.value = "";

            myform.appendChild(myinp1);
            myform.appendChild(myinp2);
            myform.appendChild(myinp3);
            myform.appendChild(myinp4);
            myform.appendChild(myinp5);
            myform.appendChild(myinp6);

            document.body.appendChild(myform); 
            document.getElementById('myinp1').value=UID;
            document.getElementById('myinp2').value= OrderNum;
            document.getElementById('myinp3').value=CustomerID;
            document.getElementById('myinp4').value=ReadFlag;
            document.getElementById('myinp5').value=VendorID;
            document.getElementById('myinp6').value = IsHistoricalPO;

            myform.submit();
            document.body.removeChild(myform);        
        }
    }          
}

このメソッドは、ポップアップ ウィンドウを開き、フォームをそこに送信します。

注文情報が表示されます。

なんらかの理由で、このページを取得することがあります。

ここに画像の説明を入力

次に、このページに移動します。

ここに画像の説明を入力

メソッドをデバッグしましたが、送信部分に到達しているように見えますが、その後は何も起こりません。

フィドラーを使用して、リクエストが行われているかどうかを確認しましたが、ブラウザからリクエストが送信されていないようです。

プロセスは、ターゲットを新しいポップアップ ウィンドウに設定して送信する一時フォームを作成しています。

4

2 に答える 2

1

私の記憶が正しければ、Internet Explorer は、ドキュメントを送信するためにフォームをドキュメント (DOM の一部) に添付する必要があります。

于 2012-08-19T07:05:08.267 に答える