我正试图找一个离开来检测我的WebBrowser控件中的dom是否发生了变化。有没有办法用事件处理程序检测到这个?或者,有没有办法让javascript事件处理程序触发c#事件?我想要完成的是设置一个ThumbnailToolBarButton,它根据网页中的状态和元素更改图标...特别是播放/暂停按钮。如果用户直接点击按钮,我可以轻松切换按钮,但如果用户点击WebBrowser控件中的暂停/播放按钮,我想检测到该按钮并切换按钮。这样,无论用户点击哪个,它都会保持同步。感谢。
答案 0 :(得分:3)
听起来你需要的是从浏览器内部回到C#环境的一些方式。
WebBrowser
控件有一个名为ObjectForScripting
的有趣属性。基本上,您可以使用任何“COM-visible”对象,并允许浏览器中的JavaScript环境调用其上的方法。设置属性后,可以使用JavaScript中的window.external
访问该对象。
要使类COM可见,您只需在类声明上方添加[ComVisible(true)]。