gpt4 book ai didi

javascript - 从 C++ 调用 JavaScript 函数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:33:06 25 4
gpt4 key购买 nike

我有一个 CDHTMLDialog,我有 2 个 HTML 页面和一个带有一些相当简单功能的 .js 文件。

我希望能够从我的程序中调用一个 JS 函数,并传递一个简单的数据类型。例如我的函数(整数)。什么都不需要退回。

我将不胜感激关于我如何去做的任何指导,

谢谢。

编辑:感谢 CR 的回答,以及其他提交想法的人。

最后有点像这样的东西起作用了(为了清楚起见,去掉了一些错误处理):

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);
}
}

最佳答案

最简单的方法是使用 execScript() 中的方法 IHTMLWindow2 界面。

所以你可以获得 IHTMLDocument2 通过调用 GetDHtmlDocument 从您的 CDHTMLDialog 界面,然后得到 parentWindow 来自 IHTMLDocument2。父窗口将具有支持 execScript()IHTMLWindow2 接口(interface)。

可能有更简单的方法从 CDHTMLDialog 获取 IHTMLWindow2 接口(interface),但我习惯于在较低级别工作。

关于javascript - 从 C++ 调用 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1666662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com