gpt4 book ai didi

browser - 使用 WebBrowser.DocumentText 和 DomDocument.DesignMode 的应用程序在 IE8 中工作,在 IE9 中不起作用

转载 作者:行者123 更新时间:2023-12-02 01:19:17 25 4
gpt4 key购买 nike

是的,我使用的 webBrowser 控件在 IE8 中工作正常,但在 IE9 中不行。似乎将 HTMLDocument 从 DesignMode =“On”设置为 DesignMode =“Off”会从 Web 浏览器中删除该文档。我做了这个例子来说明我的问题。表单上有两个按钮和一个网络浏览器。一个按钮执行 webBrowser.DocumentText,另一个按钮在 document.DesignMode =“On”和“Off”之间切换。 DesignMode 按钮使用“CheckOnClick”。我希望您能看到它的作用。

现在,如果我们在装有 IE8 的计算机上运行它;然后切换设计模式确实会将 webBrowser.Document 保留在原位。现在,如果我们在装有 IE9 的机器上运行它;然后将 DesignMode 设置为“On”或“Off”会导致 webBrowser 文档更改为“。如果 webBrowser 处于 DesignMode =“On”,并且我们设置 DocumentText;那么 webBrowser 现在处于 DesignMode =“Off”。

我一直无法找到解决此行为的方法,以便能够在 IE9 中同时使用 webBrowser.DocumentText 和 DesignMode。 IE8 的行为适合我,而 IE9 则不适合。我无法想象如何设置 DocumentText 然后对其进行编辑。

是否有设置或解决方法可以恢复 IE8 行为?在 IE9 中似乎不可能在同一个文档上使用 DocumentText 和 DesignMode。

预先感谢您的帮助。我花了很多时间自己寻找答案,但到目前为止还无法找到答案。

    public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
webBrowser1.DocumentText = "<HTML><BODY>Initial text</BODY></HTML>";
}

private void designModeToolStripButton_Click(object sender, EventArgs e)
{
if (this.designModeToolStripButton.Checked)
webBrowser1.Document.DomDocument.GetType().GetProperty("designMode").SetValue(webBrowser1.Document.DomDocument, "On", null);
else
webBrowser1.Document.DomDocument.GetType().GetProperty("designMode").SetValue(webBrowser1.Document.DomDocument, "Off", null);
}

private void setTextToolStripButton_Click(object sender, EventArgs e)
{
webBrowser1.DocumentText = "<HTML><BODY>New text</BODY></HTML>";
}
}

我也尝试在 WebBrowserDocumentCompleted 事件中进行 DesignMode 的设置,但同样的问题发生(自动)。

        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (this.designModeToolStripButton.Checked)
webBrowser1.Document.DomDocument.GetType().GetProperty("designMode").SetValue(webBrowser1.Document.DomDocument, "On", null);
else
webBrowser1.Document.DomDocument.GetType().GetProperty("designMode").SetValue(webBrowser1.Document.DomDocument, "Off", null);
}

最佳答案

问题是,当您设置 DocumentText 时,它会将 designMode 重置为“继承”,而当您将 designMode 设置为“On”时,它会清除 DocumentText。这似乎只发生在 IE 9 上。

这个修复对我有用:

webBrowser1.Document.Body.SetAttribute("contentEditable", "true");

关于browser - 使用 WebBrowser.DocumentText 和 DomDocument.DesignMode 的应用程序在 IE8 中工作,在 IE9 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7143167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com