我有一个Firefox扩展,我想移植到IE,我不想再编码。
有什么东西可以帮助我吗?它可能有很多不同的方式:
答案 0 :(得分:1)
没有简单的方法。模型非常不同。尽可能地抽象你的核心代码,并为每个浏览器编写一次胶水。
答案 1 :(得分:1)
我们在一个代码库和我们自己的IE和FF函数之间的映射存在的最大问题是接口略有不同或者有其他问题,因此您不能在浏览器中使用一致的方法。
您将拥有一个更重的帮助程序库,以使2个接口适合您的使用,或者重新编写一些解决方法。
由于我们首先有一个IE BHO,我们有以下内容将IE内容映射到FF,但根据您使用的内容,您可能会发现需要从最详细到最少的映射。以下是一些快速的想法
// Normally if you where just doing IE or FF you would use one technique for getting a different interface
// as we are mixing the code, we have macros which allows you to use a combination of code
// eg. for IE CComQIPtr<IHTMLDocument2> doc( disp );
// eg. for FF nsCOMPtr<IHTMLDocument2> doc( do_QueryInterface(disp) );
// combined in code will be CComQIPtr<IHTMLDocument2> doc( do_QueryInterface(disp) );
// FF strips off the QI, IE strips out the do_QueryInterface.
#ifdef MOZILLA
#define CComPtr nsCOMPtr
#define CComQIPtr nsCOMPtr
#define IWebBrowser2 nsIDOMWindow
#define IHTMLWindow2 nsIBrowserDOMWindow
#define IHTMLDocument2 nsIDOMHTMLDocument
#define get_Document GetDocument
#define get_type GetType
#else
// Pointer handling for nsCOMPtr vs CComPtr/CComQIPtr
#define getter_AddRefs(x) (&(x).p)
#define do_QueryInterface(x) (x)
#endif
祝你好运!
答案 2 :(得分:0)
取决于插入js的插件(并且绑定到你在ff中使用的方法)更便携
有些网站/软件可以使用单个代码来编译ie和ff