【问题标题】:C# WebBrowser Controll with javaScript and html带有 javaScript 和 html 的 C# WebBrowser 控件
【发布时间】:2011-04-07 06:53:36
【问题描述】:

我尝试将 WebBrowserControll 与 C# 一起使用。我使用以下代码。 WebBrowser Controll 打开网页,如果有一个 href=blank 它也在一个新的 WebBrowser Controll 中打开。但是如果我想用 window.open 打开一个新的 JavaScript,它不会打开一个新的 WebBrowser Controll。我必须做的就是在我的 WebBrowser Controll 中打开一个 href=blank 和一个 Java 脚本。

有人有答案吗?

感谢您的帮助。

public MainWindow()
    {
        InitializeComponent();
        webBrowser1.ScriptErrorsSuppressed = true;

        webBrowser1.FileDownload += new  EventHandler(webBrowser1_FileDownload);
        webBrowser1.NewWindow += new CancelEventHandler(webBrowser1_NewWindow);
        webBrowser1.DocumentCompleted +=new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
        webBrowser1.PreviewKeyDown += new PreviewKeyDownEventHandler(webBrowser1_PreviewKeyDown);
        this.FormClosing += new FormClosingEventHandler(webBrowser1_FormClosing);
    }

    public void setURL(String aURL)
    {
            webBrowser1.Url = new Uri(aURL);  
    }

    private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
    {

        // open href= blank  in new WebBrowser Controll
        MainWindow newWindow = new MainWindow();

        newWindow.setURL(webBrowser1.StatusText);
        newWindow.Show();
        e.Cancel = false;       
    }

    private void webBrowser1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
    {
        Console.WriteLine(e.KeyCode.ToString() + "  " + e.Modifiers.ToString());
        if (e.Modifiers == Keys.Control && e.KeyCode == Keys.V)
        {
            MessageBox.Show("ctrl-v pressed");
        }
    }

    private void webBrowser1_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (MessageBox.Show(this, "Really close the window?", "Caption", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
        {
            e.Cancel = false;
        }
        else
        {
            e.Cancel = true;
        }
    }

    private void beendenToolStripMenuItem1_Click(object sender, EventArgs e)
    {
        this.Close();
    }

【问题讨论】:

    标签: c# javascript browser


    【解决方案1】:

    我不认为这是可能的...当点击 window.open 时,浏览器应该发送一个创建参数 (1),尽管它在关闭窗口时确实有效(销毁 (2))

    如果您想要破解,您可以在加载时搜索文档并将DocumentText 属性中的window.open 替换为标签,这应该有点创意。

    祝你好运

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-15
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 2015-12-19
      • 1970-01-01
      • 2010-12-09
      • 2012-08-16
      相关资源
      最近更新 更多