进入设计模式时保留 WebBrowser 的内容
Keep WebBrowser's content when entering in Design Mode
我有这个 WebBrowser 扩展 class,它有一个名为 .DomDesignMode
的布尔值 属性,它设置 DomDocument 是否处于设计模式。
但是,当我将此 属性 设置为 true 时,浏览器会清除其之前通过设置 .DocumentText
属性.
加载的所有内容
有没有办法让它进入设计模式并仍然保留其以前的 HTML 内容?谢谢
Imports System.Windows.Forms
Imports mshtml
Public Class WebBrowserEx
Inherits WebBrowser
Private ReadOnly Property DomDocument As mshtml.IHTMLDocument2
Get
If Document IsNot Nothing Then
Return Document.DomDocument
Else
Return Nothing
End If
End Get
End Property
Public Property DomDesignMode As Boolean
Get
If DomDocument IsNot Nothing Then
Return String.Equals(DomDocument.designMode, "on", StringComparison.InvariantCultureIgnoreCase)
Else
Return False
End If
End Get
Set(value As Boolean)
If DomDocument IsNot Nothing Then
DomDocument.designMode = If(value, "on", "off")
End If
End Set
End Property
End Class
现在,让我们忘记 DomDocument
,这就是我们需要的:
WebBrowser1.Document.Body.SetAttribute("contentEditable", "true")
非常感谢this answer available here in Whosebug!
我有这个 WebBrowser 扩展 class,它有一个名为 .DomDesignMode
的布尔值 属性,它设置 DomDocument 是否处于设计模式。
但是,当我将此 属性 设置为 true 时,浏览器会清除其之前通过设置 .DocumentText
属性.
有没有办法让它进入设计模式并仍然保留其以前的 HTML 内容?谢谢
Imports System.Windows.Forms
Imports mshtml
Public Class WebBrowserEx
Inherits WebBrowser
Private ReadOnly Property DomDocument As mshtml.IHTMLDocument2
Get
If Document IsNot Nothing Then
Return Document.DomDocument
Else
Return Nothing
End If
End Get
End Property
Public Property DomDesignMode As Boolean
Get
If DomDocument IsNot Nothing Then
Return String.Equals(DomDocument.designMode, "on", StringComparison.InvariantCultureIgnoreCase)
Else
Return False
End If
End Get
Set(value As Boolean)
If DomDocument IsNot Nothing Then
DomDocument.designMode = If(value, "on", "off")
End If
End Set
End Property
End Class
现在,让我们忘记 DomDocument
,这就是我们需要的:
WebBrowser1.Document.Body.SetAttribute("contentEditable", "true")
非常感谢this answer available here in Whosebug!