Envoyé par : Amiba
Date : 31/07/2007 12:28
Bonjour, je suis en train de terminer la conception d'une extension Firefox en C++. L'application en elle-même est relativement basique: elle se connecte à un serveur, identification, etc... puis elle reçoit des informations qui sont utilisés pour envoyer vers une/plusieurs page web. (fichier.php?id=XXXXXX)
Toute cette conception est terminée, mais il me reste un dernier problème: la création d'un nouveau tab vers url. Je ne parviens pas à trouver des informations me permettant de faire comme le window.open(); en js. (Je précise que je ne peux pas utiliser Javascript pour établir le nouveau tab)
J'ai trouvé quelques lignes de code sur le web, mais j'ai quelques problèmes pour les compiler:
nsresult rv; nsCOMPtr<nsIWebBrowser> theWebBrowser; nsCOMPtr<nsIWebNavigation> theWebNav; theWebBrowser = do_CreateInstance(NS_WEBBROWSER_CONTRACTID, &rv); theWebNav = do_QueryInterface(theWebBrowser, &rv); rv = theWebNav->LoadURI(NS_ConvertASCIItoUCS2("http://www.netscape.com/").get(), LOAD_FLAGS_NONE);
/home/alex/gecko/gecko-sdk/include/nsCOMPtr.h: At global scope: /home/alex/gecko/gecko-sdk/include/nsCOMPtr.h: In instantiation of 'nsDerivedSafe<nsIWebBrowser>': MyCerb.cpp:228: instantiated from here /home/alex/gecko/gecko-sdk/include/nsCOMPtr.h:197: error: invalid use of undefined type 'struct nsIWebBrowser' IMyCerb.h:31: error: forward declaration of 'struct nsIWebBrowser' MyCerb.cpp: In member function 'virtual nsresult Cerb::Login(const char*, PRInt16*)': MyCerb.cpp:228: error: no matching function for call to 'do_QueryInterface(nsCOMPtr<nsIWebBrowser>&, nsresult*)' /home/alex/gecko/gecko-sdk/include/nsCOMPtr.h:379: note: candidates are: nsQueryInterface do_QueryInterface(nsISupports*) /home/alex/gecko/gecko-sdk/include/nsCOMPtr.h:386: note: nsQueryInterfaceWithError do_QueryInterface(nsISupports*, nsresult*) /home/alex/gecko/gecko-sdk/include/nsCOMPtr.h: At global scope: /home/alex/gecko/gecko-sdk/include/nsCOMPtr.h: In instantiation of 'nsDerivedSafe<nsIWebNavigation>': MyCerb.cpp:229: instantiated from here /home/alex/gecko/gecko-sdk/include/nsCOMPtr.h:197: error: invalid use of undefined type 'struct nsIWebNavigation' IMyCerb.h:33: error: forward declaration of 'struct nsIWebNavigation'
Aussi non, il apparait que nsCOMPtr<nsIDOMWindow> puisse le gèrer, mais je n'ai rien de concrêt... Quelqu'un aurait-il un simple snippet en C++ pour ouvrir un simple tab vers une url définie ou simplement m'aider à trouver une solution?
Merci beaucoup!
PS: pour information j'utilise: gecko-sdk-i686-pc-linux-gnu-1.8b1.tar.gz
Envoyé par : Paul Rouget
Date : 01/08/2007 20:46
Non... on ne fait pas ça en C++ (meme si c'est faisable). Il est préférable que tu appelles un callback codé en JS.
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.