如何禁用IE浏览器的自动修正地址功能

leechiyang 2012-05-05 11:12:41
新版的IE浏览器具备地址修正功能(至少,在我的win2003 IE8上是这样),如果输错了url中的协议部分,ie会自动判断,如果他认为可能是http协议,会自动改成http。

例如:
在地址栏输入httpab://localhost/,ie会自动改成http://localhost/,然后访问修正过的地址。使用HttpWatch工具进行监测,IE确实访问的是http://localhost/。
但是,如果在地址栏输入了httpabcd://localhost/,ie则不会访问http://localhost/,可能是觉得httpabcd不像是http协议,httpab有可能是http协议。

我希望禁用IE的这个URL自动修正特性,应该如何做?
...全文
210 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
leechiyang 2012-05-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

XP IE6

IE会格式化用户输入的URL

模块 SHDOCVW.dll 导出函数号 172
int __stdcall IURLQualify(LPCWSTR pszPath, char, int, int, int)

这个函数是用来修正的, 第三个参数是修正后返回的结果
[/Quote]

未公开API?
这几天没空,还没有来的及验证。
fishion 2012-05-07
  • 打赏
  • 举报
回复
在HKEY_CLASSES_ROOT中定义一个web协议?
参考下面的看看
http://www.vckbase.com/document/viewdoc/?id=1804
Yofoo 2012-05-07
  • 打赏
  • 举报
回复
XP IE6

IE会格式化用户输入的URL

模块 SHDOCVW.dll 导出函数号 172
int __stdcall IURLQualify(LPCWSTR pszPath, char, int, int, int)

这个函数是用来修正的, 第三个参数是修正后返回的结果
罗平 2012-05-06
  • 打赏
  • 举报
回复
看能否hook,
或直接自己写个浏览器。
leechiyang 2012-05-06
  • 打赏
  • 举报
回复
我也想过hook,但是不知道ie在哪一步做了url自动修复。不知道怎么hook
leechiyang 2012-05-05
  • 打赏
  • 举报
回复
在IE BHO OnBeforeNavigate2事件中,捕获到的也是http://localhost/,修正过的地址。

// DWebBrowserEvents2
void STDMETHODCALLTYPE OnBeforeNavigate2(IDispatch *pDisp, VARIANT *url, VARIANT *Flags, VARIANT *TargetFrameName, VARIANT *PostData, VARIANT *Headers, VARIANT_BOOL *Cancel);

url中保存的是http://localhost/

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧