1

私はこのページを持っています:

<body>
    <script>
        function showModal() {

            // do some things here...

            var address = 'http://localhost:61948/modal.aspx';
            window.showModalDialog(address);
        }
    </script>
    <form id="form1" runat="server">
    <div>
        <input id="btnModal" type="button" value="button" onclick="showModal();" /></div>
    </form>
</body>

そして、このボタンをクリックする WebBrowser があります。

public Form1()
{
    string url = "http://localhost:61948/WebForm1.aspx";
    InitializeComponent();
    webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
    webBrowser1.Navigate(url);
}

void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    webBrowser1.Document.GetElementById("btnModal").InvokeMember("click");
}

問題は、モーダルを表示すべきではないのに、ボタンをクリックしなければならないことです。newWindow イベントを使用してイベントをキャンセルしようとしましたが、この状況ではこのイベントは発生しません。実際のアプリケーションはコンソール アプリケーションであり、何も表示できず、ブラウザを非表示にしましたが、モーダル ウィンドウがユーザーに表示されています。そして、サーバー側で何も変更できません。このモーダル ウィンドウをユーザーから非表示にするだけです。

4

1 に答える 1

1

試す

webBrowser1.Document.InvokeScript("eval", new Object[] { "window.showModalDialog = null;" });

ダイアログを別の場所に表示したい場合は、オブジェクトにスクリプト用のメソッドを変更window.showModalDialogwindow.external.showModalDialogて実装することができます。showModalDialog

于 2013-04-26T23:39:52.943 に答える