收音机最近在我们的卧室里打破了,结果我的现在通过她的笔记本电脑收听各种广播电台。她呻吟着访问各种页面并点击“收听”链接有点痛苦。 (自我注意:必须购买新的收音机!)
与此同时,我在VB 2008 Express中制作了一个“无线电播放器”,它只不过是我创建的'播放器'左侧的6个按钮,右侧是Web浏览器控件
单击每个按钮可链接到她想要收听的电台的相关播放器。 (作为VB和编程的新手,我对我迄今取得的成就感到非常自豪!!)
无论如何,我链接到的一个电台会发出“你确定要离开这个页面”提示:这个:
那么,那就是网站的主页,实际的玩家就在这里:
(哎呀,似乎我只能发布一个链接!实际播放器打开后点击'听'按钮然后,抱歉是痛苦的!)
我的问题是:有没有办法在VB中抑制此消息,甚至以某种方式自动回答OK?
我链接的其他网站没有显示此消息,他们只是愉快地离开。在提示上单击确定也不是真正困难,我听到你说,但为了可用性,我希望它能在没有提示的情况下远离站点/播放器。
请记住,我正在使用Microsoft Visual Basic 2008 Express Edition。 (我这么说,因为我遇到了许多网站,告诉你如何使用JavaScript,而不是VB!)
我已经到了认为无法做到的地步,但是希望能够这样做!
非常感谢任何帮助/建议。而且,抱歉这个冗长的问题。希望它能为您提供足够的信息,帮助您了解我想要实现的目标。
再次感谢您。 学家
答案 0 :(得分:0)
我能想到的唯一方法是在WebBrowser控件中实际修改页面的DOM。当“window.onunload”事件触发时,该弹出窗口正在加载。您应能够通过修改DOM来覆盖此行为。
HTML文档DOM(文档对象模型,本质上是页面结构的对象图)存储在WebBrowser.HTMLDocument属性中。不幸的是,.NET版本无法使用该特定属性。它可供COM使用,因此通过一些非常丑陋和混乱的代码,您可以抑制该事件。
以下代码应该能够访问包含HTML DOM的COM属性。返回的类型是IHTMLDocument2,但您会注意到类本身将返回一个对象。您可能需要添加对mshtml.dll的引用,以使IHTMLDocument2接口以合理的方式访问它的属性。
Dim domDocument As IHTMLDocument2 = webBrowser.HtmlDocument.DomDocument
然后,您可以访问OnUnload事件(位于“window”元素上,文档位于文档上方)。不幸的是,这里的情节稍微变粗(我确实说它会变得丑陋),因为你需要将一个IDispatch对象传递给onunload事件。我从来没有专门做过这个,但是我在下面的链接中发现了一个提供一些样本的文章,并指出了你正确的方向:http://blogs.msdn.com/cgarcia/archive/2009/08/28/handling-dom-events-in-a-c-activex.aspx
你应该能够遵循类似的方法,但在处理程序方法中什么也不做,应该抑制你得到的javascript警报。
答案 1 :(得分:0)
获取对话框的句柄并将其销毁。使用 FindWindow 并向其发送 WM_CLOSE 消息。