J'ai un CDHTMLDialog, avec lequel j'ai 2 pages HTML et un fichier .js avec quelques fonctions assez simples.Appelez une fonction JavaScript à partir de C++
J'aimerais pouvoir appeler une des fonctions JS de mon programme avec un simple type de données passé avec. par exemple. MyFunc (int). Rien n'a besoin d'être retourné.
Je vous serais reconnaissant toute conseils sur la façon que je vais à ce sujet,
merci.
Modifier: Merci à CR pour sa réponse, et tous ceux qui ont soumis des idées aussi.
Quelque chose un peu comme cela a fonctionné à la fin (dépouillé une petite erreur de manipulation de celle-ci pour plus de clarté):
void callJavaScriptFunc(int Fruit)
{
HRESULT hRes;
CString FuncStr;
CString LangStr = "javascript";
VARIANT vEmpty = {0};
CComPtr<IHTMLDocument2> HTML2Doc;
CComPtr<IHTMLWindow2> HTML2Wind;
hRes = GetDHtmlDocument(&HTML2Doc);
hRes = HTML2Doc->get_parentWindow(&HTML2Wind);
if(Fruit > 0)
{
FuncStr = "myFunc(808)"; // Javascript parameters can be used
hRes = HTML2Wind->execScript(FuncStr.AllocSysString(), LangStr.AllocSysString(), &vEmpty);
}
}
voulez-vous dire jscript? Comment cela se fait dépend de quel moteur javascript vous utilisez: spidermonkey, v8, nitro- Mais vous dites dialogue chtml donc je suppose que vous utilisez jscript? – Breton
Je crois que c'est Jscript oui. J'ai aussi corrigé ma faute de frappe, ça devrait être CDHTMLDialog. – Andrew
Juste pour le plaisir de garder le tout ensemble, je viens de poster mon interprétation de ceci sur [ce fil] (http://stackoverflow.com/questions/2000371/return-value-from-execscriptihtmlwindow2/23319042#23319042). – c00000fd