禁止WebBrowser邮件发送

本文关键字:WebBrowser 禁止 | 更新日期: 2023-09-27 18:13:29

我在表单中有一个WebBrowser控件。

我希望当用户点击一个链接(href with mailto),它会注册到网站,按钮被点击,但它不会打开一个新的窗口(Outlook或任何其他网站)。

我已经找到了这段代码,但它不工作:

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    TextReader tr = File.OpenText(webBrowser1.Url.ToString());
    string  htmlFile = tr.ReadToEnd();
    tr.Close();
    tr.Dispose();
    if (htmlFile.Contains("mailto:"))
    {
        htmlFile = htmlFile.Replace("mailto:", @"mail");
        //Recreate new file with fixed html
        File.Delete(e.Url.LocalPath);
        TextWriter tw = File.CreateText(e.Url.LocalPath);
        tw.Write(htmlFile);
        tw.Flush();
        tw.Close();
        tw.Dispose();
        Refresh();
    }
}

如果有更简单的方法,答案不一定是如何修复这段代码?会更好的。

禁止WebBrowser邮件发送

这适用于WP8浏览器,但可能也适用于您的情况。注册到导航事件。这个事件是可取消的所以当你处理事件设置e。cancel =true时,它会阻止导航

private void OnNavigating(object sender, NavigatingEventArgs e)
    {
        //take the uri string, not sure is the right method name
        string uri = e.Uri.AbsoluteUri;
        if (uri.StartsWith("mailto"))
            e.Cancel = true;
    }