我正在使用WebBrowser控件,我想在控件中显示之前操纵HTML代码.
例如,打开网站A,内容如下:
<html>
<body>
<p id="Text">Hello</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我想改成它
<html>
<body>
<p id="Text">Bye</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我知道我可以用DocumentCompleted事件做到这一点,然后操纵它.但是如果网站执行在Document ready事件上执行的JavaScript内容,那么更改它就没有意义,因为它已经被执行了.
Dar*_*rov 15
您可以在Navigated事件中执行DOM操作:
webBrowser1.Navigated += (sender, e) =>
{
((WebBrowser)sender).Document.GetElementById("Text").InnerHtml = "Bye";
};
Run Code Online (Sandbox Code Playgroud)
这将在文档中的任何DOM就绪处理程序之前执行.例如,如果您最初使用以下HTML:
<html>
<head>
<title>Test</title>
</head>
<body onload="document.getElementById('Text').innerHTML = document.getElementById('Text').innerHTML + ' modified';">
<p id="Text">Hello</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当您在WebBrowser中显示此代码时,您将获得Bye modified.