本文整理汇总了C++中CPDF_Action::GetJavaScript方法的典型用法代码示例。如果您正苦于以下问题:C++ CPDF_Action::GetJavaScript方法的具体用法?C++ CPDF_Action::GetJavaScript怎么用?C++ CPDF_Action::GetJavaScript使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CPDF_Action
的用法示例。
在下文中一共展示了CPDF_Action::GetJavaScript方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ExecuteFieldAction
FX_BOOL CPDFSDK_ActionHandler::ExecuteFieldAction(
const CPDF_Action& action,
CPDF_AAction::AActionType type,
CPDFSDK_Document* pDocument,
CPDF_FormField* pFormField,
PDFSDK_FieldAction& data,
std::set<CPDF_Dictionary*>* visited) {
CPDF_Dictionary* pDict = action.GetDict();
if (pdfium::ContainsKey(*visited, pDict))
return FALSE;
visited->insert(pDict);
CPDFDoc_Environment* pEnv = pDocument->GetEnv();
ASSERT(pEnv);
if (action.GetType() == CPDF_Action::JavaScript) {
if (pEnv->IsJSInitiated()) {
CFX_WideString swJS = action.GetJavaScript();
if (!swJS.IsEmpty()) {
RunFieldJavaScript(pDocument, pFormField, type, data, swJS);
if (!IsValidField(pDocument, pFormField->GetFieldDict()))
return FALSE;
}
}
} else {
DoAction_NoJs(action, pDocument);
}
for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) {
CPDF_Action subaction = action.GetSubAction(i);
if (!ExecuteFieldAction(subaction, type, pDocument, pFormField, data,
visited))
return FALSE;
}
return TRUE;
}
示例2: ExecuteScreenAction
FX_BOOL CPDFSDK_ActionHandler::ExecuteScreenAction(const CPDF_Action& action, CPDF_AAction::AActionType type,
CPDFSDK_Document* pDocument,/* CReader_DocView* pDocView,*/ CPDFSDK_Annot* pScreen, CFX_PtrList& list)
{
ASSERT(pDocument != NULL);
if (list.Find((CPDF_Dictionary*)action))
return FALSE;
list.AddTail((CPDF_Dictionary*)action);
CPDFDoc_Environment* pEnv = pDocument->GetEnv();
ASSERT(pEnv);
if (action.GetType() == CPDF_Action::JavaScript)
{
if(pEnv->IsJSInitiated())
{
CFX_WideString swJS = action.GetJavaScript();
if (!swJS.IsEmpty())
{
IFXJS_Runtime* pRuntime = pDocument->GetJsRuntime();
ASSERT(pRuntime != NULL);
pRuntime->SetReaderDocument(pDocument);
IFXJS_Context* pContext = pRuntime->NewContext();
ASSERT(pContext != NULL);
// switch (type)
// {
// case CPDF_AAction::CursorEnter:
// pContext->OnScreen_MouseEnter(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
// break;
// case CPDF_AAction::CursorExit:
// pContext->OnScreen_MouseExit(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
// break;
// case CPDF_AAction::ButtonDown:
// pContext->OnScreen_MouseDown(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
// break;
// case CPDF_AAction::ButtonUp:
// pContext->OnScreen_MouseUp(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
// break;
// case CPDF_AAction::GetFocus:
// pContext->OnScreen_Focus(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
// break;
// case CPDF_AAction::LoseFocus:
// pContext->OnScreen_Blur(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
// break;
// case CPDF_AAction::PageOpen:
// pContext->OnScreen_Open(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
// break;
// case CPDF_AAction::PageClose:
// pContext->OnScreen_Close(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
// break;
// case CPDF_AAction::PageVisible:
// pContext->OnScreen_InView(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
// break;
// case CPDF_AAction::PageInvisible:
// pContext->OnScreen_OutView(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
// break;
// default:
// ASSERT(FALSE);
// break;
// }
CFX_WideString csInfo;
FX_BOOL bRet = pContext->RunScript(swJS, csInfo);
if (!bRet)
{
//CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), csInfo);
}
pRuntime->ReleaseContext(pContext);
}
}
}
else
{
DoAction_NoJs(action, pDocument/*, pDocView*/);
}
// if (!IsValidDocView(pDocument, pDocView))
// return FALSE;
for (FX_INT32 i=0,sz=action.GetSubActionsCount(); i<sz; i++)
{
CPDF_Action subaction = action.GetSubAction(i);
if (!ExecuteScreenAction(subaction, type, pDocument,/* pDocView,*/ pScreen, list)) return FALSE;
}
return TRUE;
}