MS Access - Web 浏览器控件 - 如何在单击时在同一框架中打开链接 document/url
MS Access - Web Browser Control - How to open linked document/url in the same frame as it was clicked
我已将 Web 浏览器控件添加到 Microsoft Access 窗体。我让它导航到一个页面,其中包含我可以单击的其他 link。我的问题是,当我单击 link 时,它会在我的本地网络浏览器 (Edge) 中打开 link。我希望新页面保留在我的 MS Access 应用程序中并在同一个 Web 浏览器控件中打开。
网站的 HTML link 基本上看起来像这样 <a href="#" target="_blank">
打开一个新的 window (在我的例子中是一个全新的浏览器),我没有能够编辑该网页。
有没有人能为我提供解决方案?非常感谢!
这是一个使用 URL 的基本示例,其中包含 link 和 Target="_self"
Private Sub UserForm_Activate()
WebBrowser1.Navigate "https://www.dofactory.com/html/target/blank"
End Sub
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim doc As Object, links As Object, link As Object, t
Set doc = WebBrowser1.Document
Set links = doc.getelementsbytagname("A") 'get all links
For Each link In links 'loop over links
t = link.getAttribute("target") 'read the "target" attribute
If Not IsNull(t) Then 'has a target ?
If t = "_blank" Then 'target is "_blank" ?
link.removeAttribute "target" 'unset the target
Debug.Print "Removed _blank"
End If
End If
Next link
End Sub
您可能在 VBA 语言指南中找不到任何 HTML 文档对象模型方法:这些方法属于“网络内容”领域和一组不同的 COM 引用。
这是我用来获得我想要的结果的 VBA 代码。我确实从另一个外部来源得到了帮助。
在下面的示例中,Web 浏览器控件的名称为 WebBrowser0。
Dim mParentURL As String
Private Sub Form_Load()
mParentURL = Me.WebBrowser0.ControlSource
End Sub
Private Sub WebBrowser0_DocumentComplete(ByVal pDisp As Object, URL As Variant)
WebBrowser0.Object.Document.Body.innerhtml = Replace(WebBrowser0.Object.Document.Body.innerhtml, "_blank", "_self", , , vbTextCompare)
End Sub
我已将 Web 浏览器控件添加到 Microsoft Access 窗体。我让它导航到一个页面,其中包含我可以单击的其他 link。我的问题是,当我单击 link 时,它会在我的本地网络浏览器 (Edge) 中打开 link。我希望新页面保留在我的 MS Access 应用程序中并在同一个 Web 浏览器控件中打开。
网站的 HTML link 基本上看起来像这样 <a href="#" target="_blank">
打开一个新的 window (在我的例子中是一个全新的浏览器),我没有能够编辑该网页。
有没有人能为我提供解决方案?非常感谢!
这是一个使用 URL 的基本示例,其中包含 link 和 Target="_self"
Private Sub UserForm_Activate()
WebBrowser1.Navigate "https://www.dofactory.com/html/target/blank"
End Sub
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim doc As Object, links As Object, link As Object, t
Set doc = WebBrowser1.Document
Set links = doc.getelementsbytagname("A") 'get all links
For Each link In links 'loop over links
t = link.getAttribute("target") 'read the "target" attribute
If Not IsNull(t) Then 'has a target ?
If t = "_blank" Then 'target is "_blank" ?
link.removeAttribute "target" 'unset the target
Debug.Print "Removed _blank"
End If
End If
Next link
End Sub
您可能在 VBA 语言指南中找不到任何 HTML 文档对象模型方法:这些方法属于“网络内容”领域和一组不同的 COM 引用。
这是我用来获得我想要的结果的 VBA 代码。我确实从另一个外部来源得到了帮助。 在下面的示例中,Web 浏览器控件的名称为 WebBrowser0。
Dim mParentURL As String
Private Sub Form_Load()
mParentURL = Me.WebBrowser0.ControlSource
End Sub
Private Sub WebBrowser0_DocumentComplete(ByVal pDisp As Object, URL As Variant)
WebBrowser0.Object.Document.Body.innerhtml = Replace(WebBrowser0.Object.Document.Body.innerhtml, "_blank", "_self", , , vbTextCompare)
End Sub