开发者

Problem using WebBrowser control as editor

开发者 https://www.devze.com 2022-12-29 04:54 出处:网络
I am currently working on a project where I am using a WebBrowser control as an editor. I have design mode turned on 开发者_如何学Cand it seems to be working. The issue im having is when I try to save

I am currently working on a project where I am using a WebBrowser control as an editor. I have design mode turned on 开发者_如何学Cand it seems to be working. The issue im having is when I try to save the Document and load another it pops up the "This document has been modified." message. What I am trying to do is as simple as this

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

Like I said everytime I enter some text and run this code it just pops up a message saying its been modified and asks if I want to save. How can I get around this?


You should create the following function:

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

It should be called every time before you change DocumentText.


You could set

BodyHtml.  

Like this:

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

Worked for me .


You should create the following function:

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

It should be called every time before you change DocumentText.


better solution is to write empty string before you actually assign your html code: WebBrowser1.Document.Write(string.Empty);
WebBrowser1.DocumentText = "your code";


I have solved this problem so:

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

This is from this link: http://social.msdn.microsoft.com/Forums/vstudio/en-US/3a9c1965-8559-4972-95e1-da0e86cf87bb/webbrowser-strange-problem


The way Windows Forms load a document stream (used by the DocumentText property) is to navigate away to about:blank, which triggers the document modified message, then load the stream in its DocumentComplete event handler.

Since you already have a document, you can skip the navigation and load the stream into the existing document directly via its IPersistStreamInit interface like Windows Forms does in its DocumentComplete event handler.


Try this webEditor.ScriptErrorsSuppressed = true;

Make sure you have disabled Script Debugging in IE in case you've turned it on.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号