Javascript 由于jQuery';s$(document).在WebBrowser的DocumentCompleted事件中操作DOM时准备就绪
我正在使用WebBrowser c#在向用户显示之前,对网站进行刮取和操作 例如,我希望隐藏当前网站的所有按钮 我通过注入Javascript来实现这一点,但我认为现在已经太晚了,因为页面已经呈现出来了,因此,在所有按钮都隐藏之前,会出现轻微的闪烁(闪烁网站显示了所有按钮) (显示的所有按钮->JavaScriptJavascript 由于jQuery';s$(document).在WebBrowser的DocumentCompleted事件中操作DOM时准备就绪,javascript,c#,dom-manipulation,Javascript,C#,Dom Manipulation,我正在使用WebBrowser c#在向用户显示之前,对网站进行刮取和操作 例如,我希望隐藏当前网站的所有按钮 我通过注入Javascript来实现这一点,但我认为现在已经太晚了,因为页面已经呈现出来了,因此,在所有按钮都隐藏之前,会出现轻微的闪烁(闪烁网站显示了所有按钮) (显示的所有按钮->JavaScript.ready(function(){})执行的注入->隐藏的所有按钮) 上面的代码:JavaScript注入 如何解决闪烁问题(当所有按钮在jQuery执行后隐藏它们之前都会快速显示一
.ready(function(){})
执行的注入->隐藏的所有按钮)
上面的代码:JavaScript注入
如何解决闪烁问题(当所有按钮在jQuery执行后隐藏它们之前都会快速显示一段时间)
我尝试过在DocumentCompleted
方法中操作DOM对象,方法是将其OuterHtml
设置为nothing”,或者将css属性设置为display:none代码>但是仍然有轻微的闪烁
private void browser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
var b = browser1.Document.getElementById("btn1");
b.OuterHtml = "";
}
在呈现给用户之前,是否有一种方法可以操作DOM对象
我该调用什么事件?我能想到的唯一可行的方法是截取导航功能,手动拖动页面,然后在浏览器窗口中呈现HTML
private void browser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
//Cancel the request
e.Cancel = true;
using (WebClient client = new WebClient())
{
string html = client.DownloadString(e.Url.ToString());
//Find the text that you want to replace here and replace it
browser1.DocumentText = html;
}
}
好主意!我现在正在尝试,但是,当页面加载下载的html字符串时,我会遇到脚本错误。正在尝试修复脚本错误,并查看是否有效。当我尝试导航到网站时,会出现弹出脚本错误。错误:脚本错误。Url是关于:/assets/debootstrapped的。提示是否要继续运行页面上的脚本。我认为.js脚本有错误的url。对不起!stackoverflow的新功能。:)编辑了上面的评论。可能,是的-它可能期望它是一个特定的URL,但看到它是手动加载的。这在JS中应该是可以修复的,这取决于它在哪一行出现问题。
private void browser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
//Cancel the request
e.Cancel = true;
using (WebClient client = new WebClient())
{
string html = client.DownloadString(e.Url.ToString());
//Find the text that you want to replace here and replace it
browser1.DocumentText = html;
}
}