NPAPI DLL을 사용하는 Chrome 용 확장 프로그램을 작성 중입니다.NPAPI DLL에서 Javascript API 호출하기
char* message = "Hello from C++";
// Get window object.
NPObject* window = NULL;
npnfuncs->getvalue(thisObj->npp, NPNVWindowNPObject, &window);
// Get console object.
NPVariant consoleVar;
NPIdentifier id = npnfuncs->getstringidentifier("console");
npnfuncs->getproperty(thisObj->npp, window, id, &consoleVar);
NPObject* console = NPVARIANT_TO_OBJECT(consoleVar);
// Get the debug object.
id = npnfuncs->getstringidentifier("log");
//console.
// Invoke the call with the message!
NPVariant type;
STRINGZ_TO_NPVARIANT(message, type);
NPVariant args[] = { type };
NPVariant voidResponse;
bool didRun = npnfuncs->invoke(thisObj->npp, console, id, args, sizeof(args)/sizeof(args[0]), &voidResponse);
if (!didRun) assert(false);
// Cleanup all allocated objects, otherwise, reference count and
// memory leaks will happen.
npnfuncs->releaseobject(window);
npnfuncs->releasevariantvalue(&consoleVar);
npnfuncs->releasevariantvalue(&voidResponse);
아무것도 콘솔에 인쇄되지지고, 그리고 둘 다 실패 어설는 없습니다 다음 NPAPI DLL의 호출 방법, 나는 자바 스크립트 콘솔에 메시지를 인쇄하려면 다음 코드를 삽입했습니다. 나는 다른 javascript 파일과 함께 사용할 때조차 아무 것도 인쇄하지 않으므로 내 console.log 문에 문제가 있는지 확실하지 않습니다. 대신 alert("Hello, world!")
같은 진술을 사용하고 싶습니다. x.y()
형식의 함수를 호출하도록 코드를 수정할 수는 있지만 경고 상자를 표시하는 방법을 이해할 수 없습니다. 나는 link에서 튜토리얼을 사용했다. NPAPI DLL에서 호출 된 경고 상자를 표시하려면 어떻게해야합니까?
편집 : window.alert("")
양식 (X.Y() form
)을 사용하여 알림을 호출 할 수 있지만 문제가 해결되지 않습니다. 나는 아직도 NPAPI에서 직접 X()
유형의 함수를 호출해야하는지 이해할 수 없다.