0

我目前正在一个项目中使用 WebBrowser 控件作为编辑器。我打开了设计模式,它似乎正在工作。我遇到的问题是当我尝试保存文档并加载另一个文档时,它会弹出“此文档已被修改”。信息。我想做的就是这么简单

if (frontPage)
{
    frontPage = false;
    frontContent = webEditor.DocumentText;
    webEditor.DocumentText = backContent;
}
else
{
    frontPage = true;
    backContent = webEditor.DocumentText;
    webEditor.DocumentText = frontContent;
}

就像我说的每次我输入一些文本并运行此代码时,它只会弹出一条消息,说它已被修改并询问我是否要保存。我怎样才能解决这个问题?

4

7 回答 7

2

您应该创建以下函数:

void ChangeAllowWebBrowserDrop() { webBrowser.AllowWebBrowserDrop = !webBrowser.AllowWebBrowserDrop; }

每次更改 DocumentText 之前都应该调用它。

于 2010-12-17T08:51:04.990 回答
1

您应该创建以下函数:

void ChangeAllowWebBrowserDrop() {
    webBrowser.AllowWebBrowserDrop = !webBrowser.AllowWebBrowserDrop;
}

每次更改之前都应该调用它DocumentText

于 2011-08-15T17:08:42.827 回答
1

你可以设置

BodyHtml.  

像这样:

string newHTMLString="some html";
webBrowser1.Document.Body.InnerHtml = newHTMLString;

为我工作。

于 2010-11-10T09:24:48.963 回答
1

更好的解决方案是在实际分配 html 代码之前编写空字符串: WebBrowser1.Document.Write(string.Empty);
WebBrowser1.DocumentText = "你的代码";

于 2012-02-15T20:32:35.967 回答
1

我已经解决了这个问题:

browser.Document.Write(string.Empty);  
browser.DocumentText="Your html code"; 

这是来自这个链接: http ://social.msdn.microsoft.com/Forums/vstudio/en-US/3a9c1965-8559-4972-95e1-da0e86cf87bb/webbrowser-strange-problem

于 2013-08-30T09:32:32.167 回答
0

Windows 窗体加载文档流(由 DocumentText 属性使用)的方式是导航到 about:blank,这会触发文档修改消息,然后在其 DocumentComplete 事件处理程序中加载流。

由于您已经有一个文档,您可以跳过导航并直接通过其 IPersistStreamInit 接口将流加载到现有文档中,就像 Windows 窗体在其 DocumentComplete 事件处理程序中所做的那样。

于 2010-05-04T00:06:42.260 回答
0

尝试这个webEditor.ScriptErrorsSuppressed = true;

确保您已禁用 IE 中的脚本调试,以防您将其打开。

于 2010-05-03T21:09:54.290 回答