1. 程式人生 > >WPF webBrowser操作DOM

WPF webBrowser操作DOM

簡言之,WPF的WebBrowser該有的都有,只不過不像WinForm那麼直觀。
所以直接將WebBrowser1.Document引用為一個dynamic物件就可以按照WinForm那麼操作了
這裡添加了對mshtml的引用。
不知道為什麼新增button後使用setAttribute新增onclick事件沒有用,所以這裡直接新增一個div,後在innerHTML中新增按鈕。

 public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            
            webBrowser1.Navigate("https://www.baidu.com/");
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            dynamic document = webBrowser1.Document;
            document.getElementById("kw").value = "Hello World";
        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {
            webBrowser1.Navigate("http://cn.bing.com/");
        }

        private void button3_Click(object sender, RoutedEventArgs e)
        {
            dynamic document = webBrowser1.Document;
            var item = document.CreateElement("div");
            item.innerHTML = "<button id=\"Test\" onclick=\"javascript: alert('Hello World')\">Hello World</button>";
            document.body.appendChild(item);
            MessageBox.Show(item.outerHTML);
            document.getElementById("Test").click();
          
        }
    }