2010-05-03 6 views
0

Je travaille actuellement sur un projet dans lequel j'utilise un contrôle WebBrowser en tant qu'éditeur. J'ai le mode design activé et il semble fonctionner. Le problème est que lorsque j'essaie d'enregistrer le document et de charger un autre, il apparaît le "Ce document a été modifié". message. Ce que je suis en train de faire est aussi simple que celaProblème lors de l'utilisation du contrôle WebBrowser en tant qu'éditeur

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

Comme je l'ai dit chaque fois que j'entrer un texte et d'exécuter ce code, il saute juste un message indiquant que son été modifié et demande si je veux sauver. Comment puis-je contourner cela?

+0

C# ne dispose pas d'un contrôle de navigateur Web. Voulez-vous dire le contrôle WinForms WebBrowser? –

Répondre

0

La façon dont Windows Forms charger un flux de documents (utilisé par la propriété DocumentText) est de naviguer loin à environ: vide, ce qui déclenche le message modifié du document, puis chargez le flux dans son gestionnaire d'événements DocumentComplete.

Étant donné que vous avez déjà un document, vous pouvez ignorer la navigation et charger le flux dans le document existant directement via son interface IPersistStreamInit comme le fait Windows Forms dans son gestionnaire d'événements DocumentComplete.

0

Essayez cette webEditor.ScriptErrorsSuppressed = true;

Assurez-vous que vous avez désactivé le débogage des scripts dans IE si vous avez activé sur.

1

Vous pouvez définir

BodyHtml. 

Comme ceci:

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

a marché pour moi.

2

Vous devez créer la fonction suivante:

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

Il devrait être appelé à chaque fois avant de changer DocumentText.

1

Vous devez créer la fonction suivante:

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

Il devrait être appelé à chaque fois avant de changer DocumentText.

0

meilleure solution consiste à écrire une chaîne vide avant d'attribuer réellement votre code html: WebBrowser1.Document.Write (string.Empty);
WebBrowser1.DocumentText = "votre code";

Questions connexes