点评 Firefox 导入 IE Cookie 的代码
2010-12-06 10:19
399 查看
Firefox 在安装完成的时候,会问你要不要导入其它浏览器的数据,比如说导入 IE 的 cookie, history 之类。导入的代码在
browser/components/migration/src/nsIEProfileMigrator.cpp
其中,导入 cookie 的代码是:
这部分代码很长,我就不完整地贴在这里了。大体上就是想办法找到 IE 保存 cookie 文件的路径,其中 Vista 如果开启了 UAC 位置还不一样,还要分别作判断,然后把文件一个一个读进来。这样的实现其实并不完美。Win32 已经提供了一条现成的 API:
browser/components/migration/src/nsIEProfileMigrator.cpp
其中,导入 cookie 的代码是:
/* Fetch and translate the current user's cookies. Return true if successful. */ nsresult nsIEProfileMigrator::CopyCookies(PRBool aReplace) { // IE cookies are stored in files named <username>@domain .txt // (in <username>'s Cookies folder. isn't the naming redundant?) nsresult rv = NS_OK; ... return rv; }
这部分代码很长,我就不完整地贴在这里了。大体上就是想办法找到 IE 保存 cookie 文件的路径,其中 Vista 如果开启了 UAC 位置还不一样,还要分别作判断,然后把文件一个一个读进来。这样的实现其实并不完美。Win32 已经提供了一条现成的 API:
HANDLE FindFirstUrlCacheEntry( __in LPCTSTR lpszUrlSearchPattern, __out LPINTERNET_CACHE_ENTRY_INFO lpFirstCacheEntryInfo, __inout LPDWORD lpcbCacheEntryInfo );
其中第一个参数如果设置为 "cookie:" 的话,就可以枚举出所有保存的 cookie. 这个 api 从 Windows 2000 开始就提供了,而 Windows 2000 也是 Firefox 所支持的最低版本的 Windows,所以没有兼容性的问题。 用好 Win32 API,往往可以起到事半功倍的效果。
相关文章推荐
- IE/Maxthon 收藏夹导入firefox两种解决方法
- 让网站变灰的CSS代码(支持IE、FIREFOX和CHROME)
- IE和Firefox完全兼容的Tab代替Enter的Javascript代码
- 兼容ie和火狐firefox的js调用flash播放器代码特效
- JS/css代码在IE和Firefox间的区别
- 图片连续滚动代码[兼容IE/firefox]
- IE,firefox(火狐)浏览器无提示关闭窗口js实现代码小结
- 怎么实现在FireFox IE Opera Safari 都可以正常播放WMV和MOV的网页播放器代码
- 如何查看firefox的cookie以及IE的cookie
- js获取单元格自定义属性值的代码(IE/Firefox)
- 通用在线播放代码(支持firefox 与 IE)
- 如何查看firefox的cookie IE的cookie
- 符合标准的间隙滚动代码(兼容IE和FireFox)
- 兼容IE和Firefox的设为首页和收藏的Javascript代码
- [导入]web标准常见问题大全 让FireFox与IE兼容
- [转] 兼容IE和Firefox的设为首页和收藏的Javascript代码
- JS控制图片翻转示例代码(兼容firefox,ie,chrome)
- IE/FIREFOX/CHROME等浏览器保存COOKIE的位置
- 兼容ie和火狐firefox的js调用flash播放器代码特效