首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TWebBrowser和URL

TWebBrowser和URL
EN

Stack Overflow用户
提问于 2014-03-05 15:32:31
回答 1查看 1.5K关注 0票数 1

我正在开发一个软件来验证将其从D5移植到XE5的问题。在D5中,每当用户单击显示表单的提交按钮时,都会调用TWebBrowser.BeforeNavigate2。在XE5中,情况并非如此。我发现这是因为提交的URL包含http:/aDirectory/ExecToBeCall.exe。如果我加了一个额外的/后面:事件是火。

在D5下,URL更改为:

http ://localhost/aDirectory/ExecToBeCall.exe (添加空间以中断帖子中的链接)

TWebBrowserD5下的这种行为对软件来说是很重要的,我不能将HTML (大约2 000个文件)更改为包含2。它允许我们知道提交是在Delphi内部还是在外部浏览器上。我尝试了其他和更新的TWebBrowser事件,没有一个是火的。

如何通知我有问题的URL,检查它并将其更改为localhost URL?最好采用一种小而干净的方法。

谢谢你的帮助和建议

EN

回答 1

Stack Overflow用户

发布于 2014-03-05 19:47:09

TWebBrowser只是Internet的ActiveX对象的一个薄薄的包装器,所以IE本身,而不是TWebBrowser,有着不同的表现。

http:/aDirectory/ExecToBeCall.exe实际上是一个有效的URL。因为:后面没有//,所以URL中没有授权部分,因此没有显式的主机名。localhost用作隐式主机名,路径为/aDirectory/ExecToBeCall.exe。这就是在D5中将URL更改为的内容,这是正确的行为。将URL更改为http://aDirectory/ExecToBeCall.exe是不正确的,因为这会创建URL的授权部分,因此主机名显式地设置为aDirectory,路径设置为/ExecToBeCall.exe,这不是您想要的。

为什么网址在XE5中没有变化,我不知道。听起来像是TWebBrowser版本中使用的IE版本中的一个bug。

在任何情况下,触发事件的都是IE,所以如果它没有触发它不喜欢的URL,那么除了使用浏览器的DOM接口直接处理HTML的onsubmit事件之外,您什么也做不了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22202103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档