spScript->GetIDsOfNames 这个方法,好像只能获取到页面中定义的js函数。像js的系统函数eval怎么调用呢。
我用的是cdhtmldialog,怎么向这个页面再添加一些javascript函数(在vc中)

解决方案 »

  1.   

    忘记说了,我要取得返回值。execScript不能返回值。
    谢谢楼上的:)
      

  2.   

    一个搞笑的主意 :先execScript("function evalImpl(x){return eval(x);}");在通过脚本对象GetIDsOfNames 然后执行evalImpl这个JS函数不知道可行不
      

  3.   

    弄了两天终于搞定了。谢谢,阿姆罗,分给你了:)用这个玩意,IScriptControlPtr m_ScriptObj,
    再,用m_ScriptObj.AddCode();把function myeval(s){return eval(s);};
    然后,m_ScriptObj.AddObject("window", m_pHtmlWindow, VARIANT_TRUE);
    把当前的窗口传进去。然后就可以用m_ScriptObj.Run那个myeval来运行脚本并取返回值了。--------------------------------------------------
    PS:正在搞鼓一个用脚本+html"写"win32程序的东东,http://www.grscript.com/,马上就可以实现打包成exe了:)
      

  4.   

    晕我刚才查到IScriptControl这个接口,但是都说不能用。你从什么接口导航过来的?
      

  5.   

    IWebBrowser的Parent属性查询IWBScriptControl接口,然后再查询IScriptControl哦了,恭喜解决问题:)
      

  6.   

    我没有查询IScriptControl,而是直接定义了一个。
    然后,把当前的窗口句柄传进去。
    我在博客小结了一下:)
    VC中调用内置浏览器中javascript函数小结