необходимо вернуть несколько значений из функции NPAPI - PullRequest
0 голосов
/ 14 июля 2011

Я пытаюсь создать плагин NPAPI, где я вызываю функцию javascript и возвращаю некоторое значение из плагина.Я сделал это, установив поля в указателе NPVariant.Но так как это структура, я могу поставить только одну строку за раз.В некоторых случаях мне нужно вернуть несколько значений или массив из функции NPAPI в JavaScript.Есть идеи о том, как этого добиться?

1 Ответ

0 голосов
/ 14 июля 2011

Единственный известный мне способ выполнить то, что вы хотите, - это вернуть массив javascript;Есть два способа получить такой массив.Первый (и, на мой взгляд, идеальный) способ - получить окно NPObject, вызвав NPN_GetValue, а затем вызвать «массив», а второй - использовать NPN_Evaluate.

Как только вы получите массив (это будетNPObject) вы можете вызывать push для него с элементами, которые вы хотите добавить.

Это то, что FireBreath делает, когда вы возвращаете FB :: VariantList (вектор объектов FB :: variable);он просто создает массив, заполняет их все, а затем возвращает этот NPObject.Таким образом, это проверенное и надежное решение.Вы также можете вызвать window.object () и затем SetProperty для возврата объекта javascript;область массивов также является объектами, так что вы даже можете создать гибрид, который будет одновременно массивом (индексированным) и объектом (ключ-> val).

...