-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpoc.js
35 lines (28 loc) · 797 Bytes
/
poc.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
const log = s => {
const p = document.createElement("p");
p.innerText = s;
document.body.appendChild(p);
};
const pocSend = (messageType, payload) => {
window.postMessage({ ...payload, messageType }, window.location.origin);
};
const pocSendLog = (message) => {
pocSend('log', {message});
}
const pocListeners = [];
const pocAddListener = (messageType, callback) => {
pocListeners.push({messageType, callback});
};
window.addEventListener("message", event => {
if (event.source !== window) {
return;
}
const payload = event.data;
const messageType = payload.messageType;
pocListeners.forEach(element => {
if (element.messageType === messageType) {
element.callback(payload);
}
});
});
module.exports = { log, pocSend, pocSendLog, pocAddListener };