最初のタイプ: execscriptを介して呼び出します。この方法は簡単に操作できますが、返品値を取得することはできません。
m_sphtmldoc-> get_parentWindow(&m_phtmlwindow); variant ret; ret.vt = vt_empty; bstr bstr = sscript.allocsysstring(); bret = m_phtmlwindow-> execscript(bstr、l "javascript"; CSTRING(RET);
2番目のタイプ:最初にgetIdsofNamesを使用してスクリプト関数名を見つけてから呼び出します。この方法では、結果を返すことができ、返品値を持つことができます。しかし、EvalなどのJSのシステム関数を呼び出すことは不可能です。
bool cdhtmldlgwindow :: calljscript(const cstring strfunc、const cstringarray&paramarray、ccomvariant* pvarresult){ccomptr spscript; if(null == m_sphtmldoc){return false; } hresult hr; hr = m_sphtmldoc-> get_script(&spscript); if(!scuceded(hr)){return false; } ccombstr bstrmember(strfunc); dispid dispid = null; hr = spscript-> getidsofnames(iid_null、&bstrmember、1、locale_system_default、&dispid); if(failed(hr)){return false; } const int arraysize = paramarray.getSize();ディスパラムdisparams; memset(&dispparams、0、size of disparams); disParams.cargs = arraysize; dispparams.rgvarg = new Variant [dispparams.cargs]; for(int i = 0; i <arraysize; i ++){ccombstr bstr = paramarray.getat(arraysize -1 -i); // bstr.copyto(&disparams.rgvarg [i] .bstrval)を読みます。 disParams.rgvarg [i] .vt = vt_bstr; } dispparams.cnamedargs = 0; Excepinfo exceptionInfo; memset(&excepinfo、0、size of exceptioninfo); ccomvariant varesult; uint nargerr =(uint)-1; //無効なargに初期化hr = spscript-> invoke(dispid、iid_null、0、dispatch_method、&dispparams、&varesult、&excepinfo、&nargerr); delete [] dispparams.rgvarg; if(failed(hr)){return false; } *pvarResult = varesult; trueを返します;}実際に使用する場合、最初にページにアクセスした可能性があります。次に、VCでこのページにJSコールをいくつか作成し、結果を取得します。このJSによって呼び出される関数がこのページでは利用できない可能性があります。一般に、評価の形式(一部のJSステートメント)を使用して、ページにない関数を呼び出すことができますが、現在では上記のメソッドのいずれも評価をサポートしていません。
3番目のタイプ: IscriptControlを使用して現在のドキュメントコンテキストを取得し、iScriptControl :: raw_eval操作を呼び出します。 (RAW_EVALのみを使用できます。評価方法を使用すると、許可がないことが促されます。)
最初に定義します:iscriptControlptr、次にm_sphtmldoc-> get_parentWindow(&m_phtmlwindow);
iscriptControlptr-> addObject( "window"、m_phtmlwindow、variant_true);
3番目のタイプでは、「msscript.ocx」をインポートする必要があります
上記のいくつかの方法(推奨)JavaScriptを呼び出す方法は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。