Я пишу расширение для Google Chrome, в котором используется библиотека NPAPI.В методе вызова библиотеки NPAPI я вставил следующий код, чтобы напечатать сообщение на консоли javascript:
char* message = "Hello from C++";</p>
<pre><code>// 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);
Ничто не являетсяраспечатывается на консоль, и ни один из них не является ошибочным.Я не уверен, есть ли проблема с моими операторами console.log, поскольку они ничего не печатают, даже когда я использую их с другими файлами javascript.Я хочу использовать выражение типа alert("Hello, world!")
вместо этого на данный момент.Я мог бы изменить свой код так, чтобы он вызывал функции вида x.y()
, но я не понимаю, как мне следует отображать окно с предупреждением.Я использовал учебник по следующей ссылке .Что я должен сделать, чтобы отобразить окно предупреждения, вызываемое из библиотеки NPAPI?
Редактировать: я могу вызвать предупреждение, используя его форму window.alert("")
(X.Y() form
), но это все еще не решаетмоя проблема.Я до сих пор не понимаю, как мне вызывать функцию типа X()
непосредственно из NPAPI.