私はこのページを持っています:
<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 イベントを使用してイベントをキャンセルしようとしましたが、この状況ではこのイベントは発生しません。実際のアプリケーションはコンソール アプリケーションであり、何も表示できず、ブラウザを非表示にしましたが、モーダル ウィンドウがユーザーに表示されています。そして、サーバー側で何も変更できません。このモーダル ウィンドウをユーザーから非表示にするだけです。