Я написал простой echoer PNaCl плагин которого сообщение обработчик просто опубликовать входящее сообщение обратно без изменений:Как передать функции JavaScript между браузером Chrome и PNaCl плагин правильно
class Instance : public pp::Instance {
public:
virtual void HandleMessage(const pp::Var& message_data) {
PostMessage(message_data);
}
};
И в стороне JavaScript, я отправляю сообщение данные которого является функцией, ожидать, чтобы получить ту же самую функцию назад и выполнить функцию: откликнулся
var funcobj = {
tocall: function() { alert('tocall called'); }
}
document.getElementById('echoFunc').addEventListener('click', function() {
console.log(funcobj);
// Post a function to plugin
common.naclModule.postMessage(funcobj);
});
function handleMessage(message_event) {
console.log(message_event);
message_event.data.tocall();
}
к сожалению, в handleMessage()
, message_event.data.tocall()
больше не является функцией, а объект с полями defineGetter
, defineSetter
, lookupGetter
, lookupSetter
и т. Д.
Как я могу передать функцию JavaScript между браузером Chrome и плагином PNaCl через PPAPI правильно?