Mam widget oparty na element iframe, który korzysta z funkcji postMessage do komunikacji z rodzicem. Oznacza to, że wysyłam wiadomość z elementu iframe, aby zażądać zmiany rozmiaru samej siebie. Dane są json i obecnie zakłócają wiadomości wysyłane przez inne widżety/skrypty na stronie nadrzędnej.Czy istnieje standardowy sposób rozpoznawania własnego postMessage w module obsługi zdarzenia onmessage?
Potrzebuję więc sposobu na rozróżnienie moich własnych wiadomości od innych.
Teraz myślę o dodaniu po prostu parametru { app: 'Poules.com', [...] }
i sprawdzeniu tego parametru przed przetworzeniem komunikatu.
Ale zanim to zrobię: czy są już jakieś ustalone kontrakty?
Wysyłanie code:
parent.postMessage(JSON.stringify(data), page.widgetOrigin);
Odbiór końcowy:
poules.sdk.receiveMessage = function(event)
{
var data = JSON.parse(event.data);
switch (data.message)
{
case 'requestResize': poules.sdk.requestResize(data); break;
case 'loginSuccess': poules.sdk.triggerLoginEvent(data); break;
default: throw "poules.sdk: can't parse message: " + event.data;
};
}