怎么禁用IE浏览器的自动修正地址功能
如何禁用IE浏览器的自动修正地址功能
新版的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自动修正特性,应该如何做?
------最佳解决方案--------------------
XP IE6
IE会格式化用户输入的URL
模块 SHDOCVW.dll 导出函数号 172
int __stdcall IURLQualify(LPCWSTR pszPath, char, int, int, int)
这个函数是用来修正的, 第三个参数是修正后返回的结果
------其他解决方案--------------------
在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/
------其他解决方案--------------------
看能否hook,
或直接自己写个浏览器。
------其他解决方案--------------------
我也想过hook,但是不知道ie在哪一步做了url自动修复。不知道怎么hook
------其他解决方案--------------------
在HKEY_CLASSES_ROOT中定义一个web协议?
参考下面的看看
http://www.vckbase.com/document/viewdoc/?id=1804
------其他解决方案--------------------
未公开API?
这几天没空,还没有来的及验证。
新版的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自动修正特性,应该如何做?
------最佳解决方案--------------------
XP IE6
IE会格式化用户输入的URL
模块 SHDOCVW.dll 导出函数号 172
int __stdcall IURLQualify(LPCWSTR pszPath, char, int, int, int)
这个函数是用来修正的, 第三个参数是修正后返回的结果
------其他解决方案--------------------
在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/
------其他解决方案--------------------
看能否hook,
或直接自己写个浏览器。
------其他解决方案--------------------
我也想过hook,但是不知道ie在哪一步做了url自动修复。不知道怎么hook
------其他解决方案--------------------
在HKEY_CLASSES_ROOT中定义一个web协议?
参考下面的看看
http://www.vckbase.com/document/viewdoc/?id=1804
------其他解决方案--------------------
未公开API?
这几天没空,还没有来的及验证。