嗨,我有一点“为什么你会打扰”的问题,但它对我的应用程序很重要我试图建立(这是长话短说)。
我的应用程序由两个并排的Web浏览器组成,其中一个触发器(例如一个按钮),另一个显示的另一个相关动作(例如警报弹出窗口)可以使用vb .net语言?
答案 0 :(得分:0)
如果您控制他们托管的内容,则可以在有限的程度上实现。
好消息是,使用ObjectForScripting属性,您可以将数据从javascript传递到.net,然后再次传输,以便一个Web浏览器可以对另一个进行响应。
另一个好消息是他们将使用相同的WinInet缓存。因此,如果您为网站创建cookie,如果它是会话cookie等,则两个浏览器都可能会读取它。
虽然我需要更多地了解您的想法,以便为您提供更好,更详细的答案。
以下是来自MSDN上的objectforscipting的一些示例代码,其中显示了如何与单个Web浏览器控件进行交互
Imports System
Imports System.Windows.Forms
Imports System.Security.Permissions
<PermissionSet(SecurityAction.Demand, Name:="FullTrust")>
<System.Runtime.InteropServices.ComVisibleAttribute(True)>
Public Class Form1
Inherits Form
Private webBrowser1 As New WebBrowser()
Private WithEvents button1 As New Button()
<STAThread()>
Public Shared Sub Main()
Application.EnableVisualStyles()
Application.Run(New Form1())
End Sub
Public Sub New()
button1.Text = "call script code from client code"
button1.Dock = DockStyle.Top
webBrowser1.Dock = DockStyle.Fill
Controls.Add(webBrowser1)
Controls.Add(button1)
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) _
Handles Me.Load
webBrowser1.AllowWebBrowserDrop = False
webBrowser1.IsWebBrowserContextMenuEnabled = False
webBrowser1.WebBrowserShortcutsEnabled = False
webBrowser1.ObjectForScripting = Me
' Uncomment the following line when you are finished debugging.
'webBrowser1.ScriptErrorsSuppressed = True
webBrowser1.DocumentText =
"<html><head><script>" &
"function test(message) { alert(message); }" &
"</script></head><body><button " &
"onclick=""window.external.Test('called from script code')"" > " &
"call client code from script code</button>" &
"</body></html>"
End Sub
Public Sub Test(ByVal message As String)
MessageBox.Show(message, "client code")
End Sub
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles button1.Click
webBrowser1.Document.InvokeScript("test",
New String() {"called from client code"})
End Sub
End Class