我想利用Webbrowser修改里的html代码里全部的"link"替换成"url"然后重新载入应该怎么写?

liyifei1234 2012-10-14 02:38:44
我想利用Webbrowser修改里的html代码里全部的"link"替换成"url"然后重新载入应该怎么写?
string html = WebBrowser.DocumentText;
if (html.Contains("link"))
WebBrowser.DocumentText = html.Replace("link", "url");

应该写到下面那个事件里?

void WebBrowser_DocumentTitleChanged(object sender, EventArgs e)
void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
...全文
263 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2012-10-15
  • 打赏
  • 举报
回复
参见
http://www.cnblogs.com/qq4004229/archive/2012/04/12/2443643.html
liyifei1234 2012-10-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
你可以先隐藏。关键是没打开之前,没有DocumentText可以得到啊
[/Quote]

原来是这样啊,那如果不用DocumentText应该在哪里修改,或者说是应该用改那个变量啊?因为有个js老是弹窗,我想这个Js替换掉。。然后再用Webbrowser打开网页。这样就不弹窗了。。麻烦您给个方法和建议好不好,有代码让我参考一下就更好了。。
孟子E章 2012-10-15
  • 打赏
  • 举报
回复
你可以先隐藏。关键是没打开之前,没有DocumentText可以得到啊
liyifei1234 2012-10-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
不要把WebBrowser的name也写成WebBrowser,这样容易冲突。你可以改成
webBrowser1

C# code

public bool loaded = false;

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)……
[/Quote]

麻烦再问您一下,为什么这些替换的内容是在网页加载以后才替换的啊?能不能在加载之前替换吗?
我的意思是现在显示出来没有问题,就是在网页打开的时候它先打开了原来的内容。然后显示的是替换后的内容,能不能在打开之前就把内容替换掉,再让它打开?
liyifei1234 2012-10-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
不要把WebBrowser的name也写成WebBrowser,这样容易冲突。你可以改成
webBrowser1

C# code

public bool loaded = false;

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)……
[/Quote]


嘿嘿,写错地,不好意思,让您费心啦。。谢谢您 。结贴啦。。
孟子E章 2012-10-14
  • 打赏
  • 举报
回复
不要把WebBrowser的name也写成WebBrowser,这样容易冲突。你可以改成
webBrowser1
public bool loaded = false;

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{

if (!loaded)
{
string html = webBrowser1.DocumentText;
if (html.Contains("link"))
webBrowser1.DocumentText = html.Replace("link", "url");
loaded = true;
}

}
liyifei1234 2012-10-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
你是重新载入,需要新赋值
[/Quote]
错误1非静态的字段、方法或属性“System.Windows.Forms.WebBrowser.DocumentText.get”要求对象引用
可是我将代码写到里面的时候出现了这个怎么办啊?
孟子E章 2012-10-14
  • 打赏
  • 举报
回复
你是重新载入,需要新赋值
孟子E章 2012-10-14
  • 打赏
  • 举报
回复
不用啊
liyifei1234 2012-10-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
WebBrowser_DocumentCompleted里面就可以,另外加一个标记,防止循环加载
public bool loaded=false;


WebBrowser_DocumentCompleted:
if(!loaded)
{
string html = WebBrowser.DocumentText;
if (html.Contains("link"))
……
[/Quote]
不用写其它代码就直接加载到webbrowser中去了吗?
还用写this.WebBrowser.Document.Write(WebBrowser.DocumentText);吗?
孟子E章 2012-10-14
  • 打赏
  • 举报
回复
WebBrowser_DocumentCompleted里面就可以,另外加一个标记,防止循环加载
public bool loaded=false;


WebBrowser_DocumentCompleted:
if(!loaded)
{
string html = WebBrowser.DocumentText;
if (html.Contains("link"))
WebBrowser.DocumentText = html.Replace("link", "url");
loaded=true;
}

109,879

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧