C # WebBrowser Controll with javaScript and html

I am trying to use WebBrowserControll with C #. I am using the following code. WebBrowser Controll will open a web page, and if there is href = blank, it will also be launched in the new WebBrowser Controll. But if I want to open new JavaScript using window.open, it will open a new WebBrowser Controll. What I have to do is that href = blank and Java Script opens in my WebBrowser Controll.

Does anyone have an answer?

Thank you for your help.

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();
    }
+3
source share
1 answer

I do not think this is possible ... The browser should send the create (1) argument when clicking on window.open, although it works when closing the window (destroy (2))

, window.open DocumentText, , .

.

0

Source: https://habr.com/ru/post/1762828/


All Articles