Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 由于jQuery';s$(document).在WebBrowser的DocumentCompleted事件中操作DOM时准备就绪_Javascript_C#_Dom Manipulation - Fatal编程技术网

Javascript 由于jQuery';s$(document).在WebBrowser的DocumentCompleted事件中操作DOM时准备就绪

Javascript 由于jQuery';s$(document).在WebBrowser的DocumentCompleted事件中操作DOM时准备就绪,javascript,c#,dom-manipulation,Javascript,C#,Dom Manipulation,我正在使用WebBrowser c#在向用户显示之前,对网站进行刮取和操作 例如,我希望隐藏当前网站的所有按钮 我通过注入Javascript来实现这一点,但我认为现在已经太晚了,因为页面已经呈现出来了,因此,在所有按钮都隐藏之前,会出现轻微的闪烁(闪烁网站显示了所有按钮) (显示的所有按钮->JavaScript.ready(function(){})执行的注入->隐藏的所有按钮) 上面的代码:JavaScript注入 如何解决闪烁问题(当所有按钮在jQuery执行后隐藏它们之前都会快速显示一

我正在使用WebBrowser c#在向用户显示之前,对网站进行刮取和操作

例如,我希望隐藏当前网站的所有按钮

我通过注入Javascript来实现这一点,但我认为现在已经太晚了,因为页面已经呈现出来了,因此,在所有按钮都隐藏之前,会出现轻微的闪烁(闪烁网站显示了所有按钮)

(显示的所有按钮->JavaScript
.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;
   }

}